http - keywords - Sitios que no aceptan el encabezado del agente de usuario wget
meta name description content (3)
Cuando ejecuto este comando:
wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" http://yahoo.com
... obtengo este resultado (sin nada más en el archivo):
<!-- hw147.fp.gq1.yahoo.com uncompressed/chunked Wed Jun 19 03:42:44 UTC 2013 -->
Pero cuando ejecuto wget http://yahoo.com
sin la opción --user-agent
, obtengo la página completa.
El agente de usuario es el mismo encabezado que envía mi navegador actual. ¿Por qué pasó esto? ¿Hay alguna manera de asegurarse de que el agente de usuario no se bloquee cuando se usa wget?
Debe configurar tanto el usuario-agente como el referer:
wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" --referrer connect.wso2.com http://dist.wso2.org/products/carbon/4.2.0/wso2carbon-4.2.0.zip
Parece que el servidor de Yahoo hace algo de heurística basado en User-Agent
en un caso. El encabezado de Accept
se establece en */*
.
Aceptar: texto / html
hizo el truco para mí
p.ej
wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" http://yahoo.com
Nota: si no declara el encabezado Accept
, wget
agrega automáticamente Accept:*/*
que significa que debe darme cualquier cosa que tenga.
~/.wgetrc
archivo ~/.wgetrc
con el siguiente contenido (obtenido de askapache.com pero con un agente de usuario más nuevo, porque de lo contrario no funcionaba siempre):
header = Accept-Language: en-us,en;q=0.5
header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
header = Connection: keep-alive
user_agent = Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0
referer = /
robots = off
Ahora puedo descargar desde la mayoría (¿todos?) Los sitios de intercambio de archivos (video streaming).