Estoy ejecutando el siguiente comando
wget -d -e robots=off --recursive -l 10 -w 6.8 -t 3 -nc --random-wait -T 10 -R "*.js, *.css, *.jsp, *.mp3, *.mp4, *.swf, *.apk, *.pdf, *.css, *.doc, *.docx, *.xls, *.xlsx, *.jpg, *.jpeg, *.gif, *.JPG, *.JPEG, *.png, *.PNG" --server-response http://www.wuli.ac.cn/CN/volumn/home.shtml --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0" -a wget_log &
Que muestra las opciones como se muestra a continuación,
Setting --recursive (recursive) to 1
Setting --level (reclevel) to 10
Setting --wait (wait) to 6.8
Setting --tries (tries) to 3
Setting --no (noclobber) to 1
Setting --random-wait (randomwait) to 1
Setting --timeout (timeout) to 10
Setting --reject (reject) to *.js, *.css, *.jsp, *.mp3, *.mp4, *.swf, *.apk, *.pdf, *.css, *.doc, *.docx, *.xls, *.xlsx, *.jpg, *.jpeg, *.gif, *.JPG, *.JPEG, *.png, *.PNG
Setting --server-response (serverresponse) to 1
Setting --user-agent (useragent) to Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0
Setting --append-output (logfile) to wget_log
Pero luego obtengo muchos resultados de depuración como el siguiente:
Deciding whether to enqueue "http://www.wuli.ac.cn/CN/column/column3290.shtml".
Already on the black list.
Decided NOT to load it.
Deciding whether to enqueue "http://www.wuli.ac.cn/CN/column/column3290.shtml".
Already on the black list.
Decided NOT to load it.
Deciding whether to enqueue "http://www.wuli.ac.cn/CN/column/column3291.shtml".
Already on the black list.
Decided NOT to load it.
Deciding whether to enqueue "http://www.wuli.ac.cn/CN/column/column3293.shtml".
Already on the black list.
Decided NOT to load it.
Deciding whether to enqueue "http://www.wuli.ac.cn/CN/column/column3294.shtml".
Already on the black list.
Decided NOT to load it.
Deciding whether to enqueue "http://www.wuli.ac.cn/CN/column/column3290.shtml".
Already on the black list.
Decided NOT to load it.
No veo muy bien dónde los estoy "en la lista negra".
Respuesta1
No estás poniendo en lista negra ninguna página web, es wget
esa la que lo hace.
Básicamente, cualquier página web que se descargue wget
se ingresa en una "lista negra" que se supone evita descargar la misma página dos veces.
El problema ocurre en páginas web que utilizan doble redirección, rebotando la solicitud a algún "control de seguridad" y viceversa. Wget no espera ser redirigido por segunda vez a la misma página, la encuentra en la lista negra y se salta la descarga de esa página.
Este problema se mencionó por primera vez en 2012 en GNU WGET Error n.° 37986: la redirección a la misma URL evita la recursividad y se implementó un arreglo, que al parecer no llegó a su distribución Linux o se perdió después de tantos años.
La única solución, además de encontrar otro descargador o versión de wget, se menciona enesta respuesta.
Sin embargo, si está dispuesto a volver a compilar wget manualmente, la solución a su problema puede ser trivial: simplemente agregue estas 2 líneas en el archivo
src/recur.c
.status = retrieve_url (url_parsed, url, &file, &redirected, referer, &dt, false, i, true); + + if (redirected) + hash_table_remove (blacklist, url); if (html_allowed && file && status == RETROK && (dt & RETROKF) && (dt & TEXTHTML))
Eso eliminará la página actual de la lista negra cada vez que sea redirigido, solucionando así su problema.
Tenga en cuenta que podría desencadenar bucles infinitos en algunos casos, por lo que no es un parche listo para enviar.