Truco tonto: engañar a wget
Hola majetes! quizá alguna vez hayáis intentado descargar una página completa con wget -r y sin ningún motivo aparente se ha negado a llevar a cabo tal tarea... quizás podáis con este cutre truco
Quien necesita este truco
Veamos... suponed que queréis descargar todo un sitio completo con wget. El sitio detecta que intentáis conectar con un navegador extraño y os deniega las páginas. Cambiáis el user agent del wget con la opción adecuada... ¡y tampoco funciona!... pero esta vez habéis obtenido un fichero más: robot.txt. Este es un fichero que envían los servidores a los robots webs (spiders) con información sobre qué pueden y qué no pueden descargar (por ejemplo para evitar que un spider se quede mandando peticiones php sin fin). Dado que este robots.txt se supone que es para hacerle caso, wget se compromete a usarlo y no ofrece ninguna opción para ignorarlo... (en la página man te vienen a decir que es compromiso de los desarrolladores) así que si la página que quieres descargar manda un robots.txt como el siguiente:User-Agent: * Disallow: /Pues ya la hemos liado porque nuestro wget va a negarse a descargar nada...
El cutre truco
Vale... supongamos que queremos descargar completamente el dominio www.listillos.com y al intentarlo hemos obtenido un directorio \www.listillos.com dentro del cual tenemos el temido archivo robots.txt que comentábamos anteriormente. Pues bien, si al wget le damos la opción -c (continue), cuando intente descargar robots.txt no lo hará porque ya se descargó uno (y será el que use), así pues sólo tendremos que modificar el archivo por algo parecido a:User-Agent: * Allow: * Disallow: /nada_de_nada_hombre_que_las_cosas_son_pa_compartirlasEs importante la última línea, porque si sólo cambiamos el Disallow por el Allow nuestro robots.txt ocupará menos que el que hay en el servidor y entonces wget lo volverá a descargar. Con la última línea inútil final nos aseguramos que wget no se descargue el fichero real... entonces... ¿cuál usa? pues el nuestro :P. Como veis el truco es tan tonto que casi me da vergüenza ponerlo, pero quizá ayude a alguien... :). De todas formas los autores de wget podrían corregir esto de una forma bastante sencilla: descargando robots.txt y procesándolo directamente en memoria, sin necesidad de grabarlo en disco...
[ show comments ]
blog comments powered by Disqus