Estou executando o seguinte 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 exibe as opções abaixo,
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
Mas então recebo muitos resultados de depuração como o seguinte:
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.
Não vejo onde estou "listando isso na lista negra".
Responder1
Você não está colocando nenhuma página da web na lista negra, é wget
isso que acontece.
Basicamente, qualquer página da Web baixada wget
é inserida em uma “lista negra” que supostamente evita o download da mesma página duas vezes.
O problema ocorre em páginas da Web que usam redirecionamento duplo, devolvendo a solicitação para alguma "verificação de segurança" e vice-versa. O Wget não espera ser redirecionado uma segunda vez para a mesma página, encontra-a na lista negra, ignorando assim o download dessa página.
Este problema foi mencionado pela primeira vez em 2012 no GNU WGET bug #37986: Redirecionamento para o mesmo URL evita recursão e foi implementada uma correção, que aparentemente não chegou à sua distribuição Linux ou foi perdida depois de tantos anos.
A única solução, além de encontrar outro downloader ou versão wget, é mencionada emesta resposta.
No entanto, se você deseja recompilar o wget manualmente, a solução para o seu problema pode ser trivial: basta adicionar essas 2 linhas no arquivo
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))
Isso removerá a página atual da lista negra sempre que você for redirecionado, corrigindo assim o seu problema.
Esteja avisado que isso pode desencadear loops infinitos em alguns casos, portanto, não é um patch pronto para envio.