Como programaticamente tomar instantâneo de rastreadas Páginas Web (em Ruby)?
-
06-07-2019 - |
Pergunta
O que é a melhor solução para programaticamente tirar um instantâneo de uma página Web?
A situação é esta: eu gostaria de rastrear um monte de páginas web e tomar miniatura instantâneos de-los periodicamente, dizer que uma vez a cada poucos meses, sem ter que ir manualmente para cada um. Eu também gostaria de ser capaz de tomar jpg / png snapshots de sites que podem ser completamente Flash / Flex, então eu teria que esperar até que ele carregado para tirar o instantâneo de alguma forma.
Seria bom se houvesse nenhum limite para o número de miniaturas eu poderia gerar (dentro da razão, dizem 1000 por dia).
Alguma idéia de como fazer isso em Ruby? Parece muito difícil.
Navegadores de fazer isso em:. Safari ou Firefox, de preferência Safari
Muito obrigado.
Solução
Isso realmente depende de seu sistema operacional. O que você precisa é uma maneira de ligar para um navegador web e salvar que a uma imagem.
Se você estiver em um Mac - Eu imagino a sua melhor aposta seria usar MacRuby (ou RubyCocoa - embora eu acredite que isso vai ser obsoleto no futuro próximo) e, em seguida, usar o WebKit quadro para carregar a página e torná-lo como uma imagem.
Este é definitivamente possível, por inspiração que você pode querer olhar para o Paparazzi! e webkit2png projectos.
Outra opção, que não é dependente do sistema operacional, pode ser usar a BrowserShots API .
Outras dicas
Não há construído em biblioteca em Ruby para renderizar uma página web.
-
Usando Selenium & Ruby é uma possibilidade. Você pode executar o Firefox como um navegador sem cabeça (ou seja, no servidor).
-
Aqui está o código fonte para tiros navegador. http://sourceforge.net/projects/browsershots/files/
-
Se você estiver usando Linux, você poderia usar http://khtml2png.sourceforge.net/ e roteiro lo via ruby.
-
Alguns serviços pagos para tentar automatizar
como visto por .... isto é? Raposa de fogo? ópera? um dos motores miríade webkit?
Se fosse possível automatizar http://browsershots.org :)
Use o selênio-rc, ele vem com recursos de snapshot.
Com jruby você pode usar a biblioteca navegador do SWT.