wget - difficult - Como baixar todos os links de uma página incluindo os de caminho diferente?

0

Para tornar a explicação mais fácil e um pouco divertida, vamos imaginar que eu queira baixar as páginas da Wikipédia de todas as pessoas mencionadas aqui com um comando wget, possivelmente com quantidade razoável de outras páginas nas quais não estou interessado. Por favor, não feche. Se você acha que é trivial, tente fazê-lo.

    
por grrrr 21.02.2014 / 17:16

1 resposta

1

C:\blah>wget -r -l 1 -w 1 -t 1 -T 5 -nd -k -e "robots=off"  http://en.wi
kipedia.org/wiki/List_of_inventors_killed_by_their_own_inventions

Eu não posso testar isso rapidamente, porque levará tempo para ser concluído, já que ele baixa um link por segundo. Se correu rápido eles podem bloquear você. Além disso, se estiver fazendo -k, então isso pode correr depois e não rodar se você fizer ctrl-c no meio, mas você pode deixá-lo seguir seu curso ou remover -k e -nd e pará-lo no meio e ver como ele vai .

-r -l 1 < --- muito crucial, isso é muito o que seu título pede, seguir os links, baixar os links. (sim, incluindo links de caminho diferentes, mas se você quiser links em hosts estrangeiros, você precisará de -H também)

-w 1 -t 1 -T 5 < - so -w 1 para esperar 1 segundo entre cada requisição http, caso contrário o servidor da wikipedia pode ficar bravo e bloquear você ou algo possivelmente. como eles realmente não querem ninguém spidering seu site parece. -t 1 (tente novamente um link uma vez se falhar). -T é quanto tempo esperar se não conseguir baixar um link. Se ele atingir um link morto, você não o espera 20 segundos e tenta 20 vezes. ou levará mais tempo do que deveria baixar o lote. . -w 1 é o mais importante deles, já que você não quer que nenhum tipo de bloqueio temporário faça o download de qualquer coisa para sobrecarregar seu servidor.

-e "robots = off" < --- isto é crucial, caso contrário não funcionará. Isso ultrapassa a Wikipedia tentando impedir as aranhas.

-nd < - não é tão necessário .. apenas recolhe diretórios, basta colocar os arquivos em um diretório. você pode ou não ser o que você quer. Você pode querer deixar de fora.

-k < - converte links, de modo que, em vez de apontarem para páginas da Web on-line, eles apontam para os arquivos locais transferidos por download. O problema é que, aparentemente, isso pode fazer a sua coisa após o download wget não converter links Então é por isso Eu não posso simplesmente baixar um pouco e realmente testá-lo. E você poderia fazer isso manualmente também. com search and replace .. na sua página de índice List_of_inventors_killed_by_their_own_inventions.htm então qualquer coisa que diz /wiki/James_Douglas,_4th_Earl_of_Morton você poderia mudar .. Embora isso seja provavelmente ok .. Você poderia deixar de fora -e .. Então você obtém todos esses arquivos em um subdiretório "wiki". Ou você poderia simplesmente mover os arquivos para um subdiretório wiki, se necessário. Faça sua árvore de diretórios corresponder aos links ou faça com que os links correspondam à sua árvore de diretórios.

Estou um pouco atrapalhado quando estou baixando sites ... Eu me deparo com problemas ... às vezes eu uso o editpad pro e o powergrep para fazer alterações no html usando expressões regulares ... convertendo as coisas eu mesmo. é complicado. e esses programas não são gratuitos, mas outros são. Antes disso, eu usava a pesquisa do bloco de notas e substituía arquivos individuais ou algum programa gratuito que pudesse pesquisar e substituir em um lote de arquivos. E ms palavra às vezes cortando blocos alt-arrastar .. se necessário, editando o html. complicado. Mas essa linha deve chegar até lá.

Às vezes eu pego todos os links de uma página, então eu só tenho um arquivo de links, então eu faço wget -i fileoflinks então não tem nenhum negócio engraçado! embora eu também faça -w 1 -t 1 -T 2 ou algo assim ... por isso não atrapalha o servidor. Também com esse método você não tem nenhum negócio engraçado.

    
por 21.02.2014 / 17:51