Pergunta

Eu tenho várias páginas da web em vários sites diferentes que quero refletir completamente. Isso significa que vou precisar de imagens, CSs, etc, e os links precisam ser convertidos. Essa funcionalidade seria semelhante ao uso do Firefox para "salvar a página como" e selecionar "página da web, completar". Eu gostaria de nomear os arquivos e os diretórios correspondentes como algo sensata (por exemplo, myfavpage1.html, myfavpage1.dir).

Não tenho acesso aos servidores e eles não são minhas páginas. Aqui está um link de amostra: Clique em mim!

Um pouco mais de esclarecimento ... Tenho cerca de 100 páginas que quero espelhar (muitos de servidores lentos), vou cronizar o trabalho no Solaris 10 e despejar os resultados a cada hora em uma montagem de Samba para que as pessoas visualizem. E, sim, obviamente tentei WGet com várias bandeiras diferentes, mas não obtive os resultados para os quais estou procurando. Portanto, apontar para a página do GNU WGet não é realmente útil. Deixe -me começar com onde estou com um exemplo simples.

 wget --mirror -w 2 -p --html-extension --tries=3 -k -P stackperl.html "https://stackoverflow.com/tags/perl"

A partir disso, devo ver o https://stackoverflow.com/tags/perl Página no arquivo Stackper.html, se eu tivesse os sinalizadores corretos.

Foi útil?

Solução

Se você está apenas procurando executar um comando e obter uma cópia de um site, use as ferramentas que outras pessoas sugeriram, como wget, ondulação, ou algumas das ferramentas da GUI. Eu uso minha própria ferramenta pessoal que eu chamo webreaper (essa não é a janela Webreaper no entanto. Existem alguns programas Perl que eu conheço, incluindo WebMirror E alguns outros que você pode encontrar em CPAN.

Se você deseja fazer isso dentro de um programa PERL, está escrevendo (já que você tem a tag "Perl" em sua resposta), existem muitas ferramentas em CPAN Isso pode ajudá -lo em cada etapa:

Boa sorte, :)

Outras dicas

Para uma versão em HTML de seus sites, você pode usar o WINHTTRACK - um programa GRATE de código aberto e de código aberto disponível. Ele retirará versões pré-renderizadas de suas páginas, gráficos, documentos, arquivos zip, filmes, etc ... É claro que, já que este é uma cópia espelhada, qualquer código de back-end dinâmico, como chamadas de banco de dados, não será mais dinâmico.

http://www.httrack.com/

Pessoalmente, a última vez que tive o desejo de fazer isso, escrevi um script Python que fiz uma cópia do meu cache do navegador e depois visitei manualmente todas as páginas que desejava refletir. Uma solução muito feia, mas tem a boa vantagem de não acionar os alarmes de "não raspar minha página". Graças a ÓperaA guia Links da barra de links, "manualmente", baixando dezenas de milhares de páginas não foi tão difícil quanto você imagina.

Vou ecoar o comentário "não está claro". Essas páginas/sites da Web são que você criou e você deseja implantá -las em vários servidores? Nesse caso, use referências relativas em seu HTML e você deve ficar bem. Ou use um no seu e ajuste -o em cada site. Mas, a relatividade é realmente o caminho a percorrer.

Ou você está dizendo que gostaria de baixar sites (como a página inicial do Stack Overflow, Perl.com etc.) para ter cópias locais no seu computador? Vou concordar com Daniel - use wget.

Jim

eu uso Webreaper

Você pode usar as ferramentas WGET GNU para pegar um site inteiro como este:

wget -r -p -np -k URL

Ou, se você usar o Perl, tente estes módulos:

  • Lwp :: simples

  • Www :: mecanize

Se o wget for complicado ou você não tiver um LinuxBox, você sempre pode usar o webzip

Parece que você deseja a funcionalidade de cache fornecida por um bom servidor proxy.

Talvez olhar para algo como lula? Tenho certeza de que pode fazer isso.

Essa é mais uma questão do tipo sysadmin do que programação.

Na maioria dos sites modernos, o front end apenas conta uma pequena parte da história. Independentemente das ferramentas para remover HTML, CSS e JavaScript, você ainda estará faltando a funcionalidade principal que está contida no servidor.

Ou talvez você estivesse significando outra coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top