2012-06-15 20 views
8

En Ubuntu, estoy tratando de descargar un archivo (desde un script) usando wget. Crear un programa para descargar este archivo todos los días y cargarlo en un clúster hadoop.wget no funciona

sin embargo, falla el wget, con el siguiente mensaje.

wget http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 
--2012-06-16 03:37:30-- http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 
Resolving www.nseindia.com... 122.178.225.48, 122.178.225.18 
Connecting to www.nseindia.com|122.178.225.48|:80... connected. 
HTTP request sent, awaiting response... 403 Forbidden 
2012-06-16 03:37:30 ERROR 403: Forbidden. 

cuando pruebo la misma URL en firefox o equivalente, funciona bien. Y sí, no hay ningún acuerdo de licencia involucrado ...

¿Me falta algo básico con respecto a wget?

+0

¿Cuánto tiempo atrás puedes recuperar esos datos con wget? Supongo que está construyendo las URL para cada día de negociación al concatenar las cadenas de URL. Curioso saber –

+0

Bueno, creo que NSEIndia tiene datos que se remontan hasta 2000 o así ... bSEIndia tiene un servicio similar, y se remontan en el tiempo aún más ... – Gyan

Respuesta

12

El sitio bloquea wget porque wget usa un agente de usuario poco común de forma predeterminada. Para utilizar un agente de usuario diferente en wget, tratan:

wget -U Mozilla/5.0 http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 
+0

Eso no es completamente cierto. Tiene un user-agent: Wget/VERSION de acuerdo con 'wget --help'. – Zagorax

+0

guau, funcionó como un amuleto ... muchas gracias. Probablemente ahora sea ambicioso, ¿no hay una versión de tipo bulk, porque con este wget ahora, no consigo intentar hacer un * .zip o similar ... algún consejo allí ... – Gyan

+1

Pruebe 'wget --help' , hay una opción para descarga recursiva y otra para listar la extensión que desea descargar. – Zagorax

6

Uso:

wget -U mozilla http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 

Algunos sitios simplemente evitan wget agente de usuario para descargar archivos. Acabo de descargar ese archivo con este comando. Funciona.

0

Otro webapps la técnica o servidores web pueden utilizar es comprobar valor de encabezado contenido el 'Referente'. Además de especificar el agente de usuario, puede ser necesario proporcionar la URL de referencia.

por ejemplo,

wget --referer http://freestockphotos.com/Scenery1.html http://freestockphotos.com/SKY/TreeSunset.jpg 

Este ordenador parece rechazar las solicitudes para el archivo de destino si no se hicieron durante la navegación de la página 'Scenery1.html'.

2

Uso curl -O <URL> porque wget no es compatible con HTTPS y algunos otros protocolos.

0

Algunos sitios simplemente impiden que wget user-agent descargue archivos wget -U 'Mozilla/5.0 (X11; U; Linux i686; es-US; rv: 1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4' http://yourURL.com