Menu Principal

terça-feira, 23 de julho de 2013

Cópia de site com WGET

Fonte: http://www2.explorando.com.br/2007/09/como-baixar-sites-inteiros-com-o-wget

wget -r http://www.umsitequalquer.com.etc
Faz com que ele copie todo o site (salvando na pasta atual do prompt), incluindo imagens, seguindo os links e baixando todos os arquivos que encontrar. Claro que isso deve ser usado com responsabilidade, para não prejudicar o site e nem mesmo seu HD, pois facilmente você poderá enchê-lo de porcaria.
DICA QUE SÓ O EXPLORANDO DÁ PARA VOCÊ: por padrão, o wget ignora os arquivos que o produtor do site pediu para ignorar, por meio de um arquivo "robots.txt". Esse arquivo serve para os caçadores de sites dos buscadores, eles identificam quais arquivos não devem seguir os links. Isso impede que o wget baixe determinados arquivos, arquivos esses que muitas vezes são justamente os que você precisa. Para fazê-lo ignorar os arquivos "robots.txt" e baixar tudo o que encontrar, basta usar o parâmetro -erobots=off. Ficaria assim:
wget -r -erobots=off http://www.umsitequalquer.com.etc
Se você quiser baixar apenas arquivos de determinado tipo, use o parâmetro -A seguido da extensão, por exemplo:
wget -r -erobots=off -A ".gif" http://www.umsitequalquer.com.etc
Boa sorte, juízo e por favor, responsa sempre! Use essas dicas com cuidado, pois isso em excesso pode prejudicar os sites. Não somos contra o compartilhamento de informação, cada um faz o uso que quiser, sob sua inteira responsabilidade.
A sintaxe básica é essa aí, deixo aqui o trecho do texto do Eder que fala do wget, vale a pena :)
Aproveitando, comentei recentemente aqui sobre várias críticas ao Linux (algumas exclusivamente pessoais e momentâneas, outras globais), mas há coisas que no Linux você tem primeiro, realmente :) Como digo, eu amodeio o Linux, hehe. Bom, vamos ao tutô do wget!
Comando wget = software que faz o download de arquivos da WWW
por Eder S. G. (Jordam)
ederjordam@yahoo.com.br
http://geocities.yahoo.com.br/ederjordam
Sintaxe:
wget URL:porta/path
- Comeca a fazer o download do arquivo 'file1.avi'
wget http://www.site.com.br/file1.avi
- Caso a conexao termine e o download do arquivo 'file1.avi' não tenha terminado, basta reiniciar do ponto onde caiu a conexão, usando o parametro '-c'
wget -c http://www.site.com.br/file1.avi
- Copia todo o conteúdo do site referente à este dominio
wget -r http://www.dominio.com/
- Baixa apenas páginas html do site, deixando de lado as imagens e outros arquivos. Neste caso você usa o parâmetro '-A', seguido dos tipos de arquivos a serem baixados. O wget automaticamente converte páginas php, asp e outras extensões para html, de forma que esse comando funciona bem com a maioria dos sites
wget -r -A ".html" http://www.uol.com.br
- Baixando um arquivo via FTP com com senha. EX:
wget ftp://login@senha@http://ftp.ibiblio.org/teste.iso
ou
wget ftp://user:password@host/path
- Faz o download do arquivo 'file1.txt' especificando o nome de usuário sendo 'user1', a senha sendo 'senha88', e o caminho do arquivo no servidor ftp
wget user1:senha88@ftp.ederjordam.com/home/ederjordam/file1.txt
- Copia um arquivo especifico, no exemplo seria index.html e grava no diretorio '/tmp' com o nome de 'teste.html'
wget -O /tmp/teste.html http://www.site.com/files/index.html
- Copia todas as páginas HTML do site 'http://www.uol.com.br/remedios'
wget -m -l 0 -A htm http://www.uol.com.br/remedios
- Copia a página web e suas imagens para o respectivo diretório que voce se encontra
wget -r -np -k http://whatever/wherever
- Copia todo o site para o seu computador
wget -t0 -r -F http://www.dominio.com
- Faz o espelhamento (mirror) do site. OBS: Um espelhamento mal projetado pode contribuir para encher seu disco rígido com material não desejado, além de sobrecarregar a Internet e o servidor sendo espelhado
wget -m http://members.xoom.com/edersg/
- Uma aranha, no contexto da Internet é um programa que serve para verificar se os links de uma página estão ativos, ou seja, verificando se cada vínculo HREF está conectado (ativo), verificando se os links de uma determinada página local, chamada de links.html, estão ativos
wget --spider --force-html -i links.html
- Faz o mesmo que a opção acima, porem o arquivo agora analizado se encontra na Internet
wget --spider http://members.xoom.com/edersg/links.html
- Para fazer o download apenas de imagens nos formatos jpg, gif e png
wget -P /tmp/pastaespecifica -r -p http://www.unicamp.br --accept=JPG,jpg,GIF,gif,png,PNG
- Para fazer o download de todos os aquivos de um site
wget -c -r ftp://meu.servidor.com/
- Para fazer o download do arquivo 'arquivo.txt' de um ftp que exija login e senha
wget ftp://login:senha@ftp.servidor.com/pasta/arquivo.txt
wget ftp://usuario:senha@servidor_ftp.com.br/arquivo.extensao
- Para limitar o download a no máximo 10Kbps
wget --limit-rate=10k --continue http://algumendereco/arquivo.zip
- O wget pode também retomar transferências interrompidas (opção '-c') quando se fornece o arquivo incompleto ao qual se acrescenta os restantes dados. Esta operação precisa de ser suportada pelo servidor
wget -c http://o.url.do/arquivo/incompleto
Entretanto, lembre-se que nem todos os sites estão abertos para espelhamento, o direito autoral deve ser respeitado. E também, existem sites que possuem arquivos robots.txt que especificam quais partes do site podem ser copiadas e quais não. Portanto, não se surpreenda se descobrir que determinado site ou página não pode ser recuperado.
- Se tiver tantas interrupções na transferência de arquivo como eu tenho no meu escritório, pode dizer ao wget para tentar o URL várias vezes
wget -t 5 http://coloque.o.seu.url/aqui
aqui desistimos ao fim de 5 tentativas. Use a opcao '-t inf' para nunca
desistir.
- E quanto a proxy firewalls? Use a variável de ambiente "http_proxy" ou o arquivo de configuração ".wgetrc" para especificar um proxy através do qual irá fazer a transferência de arquivos. Um problema com ligações via proxy com ligações interrompidas é que o retomar pode por vezes falhar. Se uma transferência via proxy é interrompida o servidor proxy irá colocar em cache somente uma cópia incompleta do arquivo. Quando tentar usar "wget -c" para obter o resto do arquivo o proxy irá verificar a sua cache e informar erradamente que o arquivo completo já foi transferido. Pode conseguir que a maioria dos proxyes não passe pelo cache, adicionando um cabeçalho especial ao pedido de transferência de arquivos:
wget -c --header="Pragma: no-cache" http://coloque.o.seu.url/aqui
- A opção "--header" pode adicionar qualquer número e tipos de cabeçalhos pelos quais podemos modificar o comportamento dos servidores de rede e dos proxies. Alguns sítios recusam-se a servir arquivos via uma ligação externa; o conteúdo é entregue somente a navegadores se acederem a página via outra página no mesmo sítio. Pode contornar isto adicionando um cabeçalho 'Referer:'
wget --header="Referer: http://site.com/pagina"
http://navegar.para.esta/pagina
- Alguns sites na rede particularmente anti-sociais irão fornecer conteúdo somente a um tipo específico de navegador. Contorne isto com um cabeçalho "User-Agent:" header:
wget --header="User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; WindowsNT; DigExt)" http://so.url.msie/aqui
Aviso: a dica acima pode ser considerada um mecanismo para evitar licenciamento de conteúdo e existem sistemas legais anti-sociais que consideram estas acções ilegais. Verifique a legislação local.
- A opção "-N" para o wget irá verificar o selo temporal do objectivo e parar a transferência se eles coincidirem, o que é uma indicação que o ficheior completo foi transferido. Por isso pode activa-lo e esquece-lo
wget -c -N http://coloque.o.seu.url/aqui
- Recuperando downloads interrompidos - uma das características que tornam interessantes o uso do wget é sua capacidade para recuperar downloads interrompidos, desde, é claro, que o servidor suporte este recurso. Você pode recuperar downloads perdidos especificando a opção '-c' na linha de comando do wget
wget -c http://www.dominio.com/arquivo.tar.gz
- Espelhamento de sites - outro recurso interessante é o espelhamento de sites, também conhecido como mirror. O wget é capaz de fazer espelhamento de sites, mas tenha cuidado: um espelhamento mal projetado pode contribuir para encher seu disco rígido com material não desejado, além de sobrecarregar a Internet e o servidor sendo espelhado. Você faz um espelhamento utilizando a opção -m (de mirror). Lembre-se que nem todos os sites estão abertos para espelhamento. Existem sites que possuem arquivos 'robots.txt' que especificam quais partes do site podem ser copiadas e quais não. Portanto, não se surpreenda se descobrir que determinado site ou página não pode ser recuperado
wget -m http://www.dominio.com/diretorio/
- O comando 'at' pode ser utilizado para agendar uma tarefa em um momento específico do dia. Este comando vai agendar para a 1 hora da madrugada o download do arquivo http://www.dominio.com/file01.tar.gz'. O resultado do download (no caso, mensagens do wget), serão enviados para voce via comando 'mail'
echo "wget http://www.dominio.com/file01.tar.gz" | at 01:00
- Uma 'aranha', no contexto da Internet, é um programa que serve para verificar se os links de uma página estão ativos. A referência surgiu por que o programa examina a página como se fosse um ponto de uma teia (web), verificando se cada fio (vínculo HREF) está conectado (ativo). Para utilizar o wget como aranha, usamos a opção '--spider'. Para verificar se os links de uma determinada página local, chamada de 'bookmark.html' estão ativos, basta digitar o comando acima. A opção '--force-html' obriga o arquivo local 'bookmark.html' a ser tratado como arquivo HTML
wget --spider --force-html -i bookmark.html
Se o arquivo reside na Internet, a sintaxe pode ser simplificada wget --spider http://www.dominio.com/linuxlinks.html
- Baixa o conteúdo de um web site
wget -c -t70 -r -np http://www.dominio.com.br
- Passa alguns parametros como usuário e senha para poder baixar o conteúdo de um site
wget -c -r --http-user=usuario --http-passwd=senha link
-c : esta opção informa ao wget para continuar o download de onde terminou se encontrar um arquivo parcial. Se não fosse informada esta opção, ele criaria novo arquivo e começaria o download do início.
-t0 : com esta opção, estou informando ao wget que, caso o download falhe, ele deve repetir indefinidamente o mesmo. É preciso cuidado com esta opção, principalmente se o comando será executado em uma sexta-feira para ser verificado somente na segunda feira - se a URL estiver errada, o wget vai ficar tentando encontrar o arquivo indefinidamente.
-T30 : o wget utiliza a facilidade de timeout, mas seus limites de tempo não são satisfatórios, pelo menos não para mim. Com esta opção, estou informando ao wget que, se não houver fluxo de dados por 30 segundos, ele deve refazer a conexão.
-i get-list.txt : esta opção informa ao wget que este deve ler as URL's a serem baixadas a partir de um arquivo, a saber, get-list.txt (pode ser qualquer nome), em vez de receber a mesma na linha de comando.

Nenhum comentário:

Postar um comentário