wget --spider: como saber de onde vêm os links quebrados

wget --spider: como saber de onde vêm os links quebrados

Às vezes, eu uso o modo spider integrado do wget como uma conveniência para verificar rapidamente se há links quebrados em um site local. Esta manhã voltei sua atenção para um site de produção no qual acabamos de fazer grandes mudanças, e ele está apresentando 3 links quebrados, mas parece impossível dizer onde eles estão! (Ele diz apenas o link para o qual eles estão vinculando e não há uma maneira direta de relacionar isso a uma página.)

As opções que estou usando atualmente são wget -r -nv --spider http://www.domain.com/ -o /path/to/log.txt. Alguém conhece uma opção que estou ignorando, uma forma de ler a saída ou até mesmo um substituto simples para esse comando que também me informará em qual arquivo os links aparecem (e de preferência um # de linha)?

Responder1

Você deve ser capaz de observar os logs do servidor web, em conjunto com a execução do wget. Procure os 404no arquivo de log e puxe o referrercampo. Isso lhe dirá a página que contém o link quebrado.

Deveria então ser apenas uma questão de examinar essa página em busca do link ofensivo.

Responder2

Uma boa maneira (não envolvendo os logs do servidor web) é usar o --debugsinalizador e grep para^Referer:

Na linha de comando:

wget -r -nv --spider http://www.domain.com/ 2>&1 | egrep -A 1 '(^---response end---$|^--[0-9]{4}-[0-9]{2}-[0-9]{2}|^[0-9]{4}-[0-9]{2}-[0-9]{2} ERROR|^Referer:|^Remote file does not)'

Você pode fazer um grep semelhante no seu log. Advertência: alguns wget não são compilados com suporte para--debug

informação relacionada