Pergunta

O que é uma boa ferramenta de linha de comando para criar screenshots de sites em Linux? Eu preciso gerar automaticamente screenshots de sites sem interação humana. A única ferramenta que eu encontrei foi khtml2png , mas gostaria de saber se há outros que não são baseadas em khtml ( ou seja, ter um bom suporte JavaScript, ...).

Foi útil?

Solução

Um pouco mais de detalhe pode ser útil ...

Iniciar um firefox (ou outro navegador) em uma sessão X, quer no seu console ou usando um vncserver. Você pode usar as opções --height e --width para definir o tamanho da janela para tela cheia. Outro comando firefox pode ser usado para definir a URL que está sendo exibido na primeira janela do Firefox. Agora você pode pegar a imagem da tela com um dos vários comandos, como o comando "importação" do pacote Imagemagick, ou usando o GIMP, ou fbgrab, ou xv.

#!/bin/sh

# start a server with a specific DISPLAY
vncserver :11 -geometry 1024x768

# start firefox in this vnc session
firefox --display :11

# read URLs from a data file in a loop
count=1
while read url
do
    # send URL to the firefox session
    firefox --display :11 $url

    # take a picture after waiting a bit for the load to finish
    sleep 5
    import -window root image$count.jpg

    count=`expr $count + 1`
done < url_list.txt

# clean up when done
vncserver -kill :11

Outras dicas

Tente agradável pequena ferramenta CutyCapt , que depende apenas de Qt e QtWebKit. ;)

Tenha um olhar em PhantomJS , que parece ser um motor Webkit scritable livre que roda em Linux, OSX e Windows. Eu não usei-o desde que nós usamos atualmente Browshot (solução comercial), mas quando todos os nossos créditos acabarem, vamos ter seriamente um saque no -lo (desde que está livre e pode ser executado em nossos servidores)

scrot é uma ferramenta de linha de comando para tirar screenshots. Veja a página homem e este tutorial .

Você também pode querer olhar para scripts do navegador. Há Firefox Add-ons que tirar screenshots como screengrab (que pode capturar a página inteira, se quiser, não apenas o pouco visível) e você poderia, então, o script do navegador com greasemonkey a tomar as screenshots.

Consulte Webkit2png .

Eu acho que isso é o que eu usei no passado.

Editar eu descobrir que eu não usei o acima, mas encontrou desta página com críticas de muitos programas diferentes e técnicas.

Eu sei que não é uma ferramenta de linha de comando, mas você poderia facilmente script de alguma coisa para usar http://browsershots.org/ não que útil para aplicações não hospedados em IPs externos.

A grande ferramenta não obstante.

Eu não sei de qualquer coisa personalizado construído, tenho certeza de que poderia haver algo feito com o motor gecko para renderizar para um arquivo PNG em vez da tela ...

Ou, você pode disparar até firefox no modo tela cheia em uma instância dedicada servidor VNC e usar um grabber screenshot para capturar a imagem. Fullscreen = mínimo de cromo, instância de servidor VNC = nenhuma interface do usuário visível + você pode escolher a sua resolução.

Use xinit com Xvnc como o servidor X para fazer isso -. Você precisa ler todas as páginas de manual

desvantagens são que a imagem é sempre o mesmo tamanho, não redimensionar acordo com a página web ...

Há o import comando, mas você vai precisar de X e um pequeno script bash que abrir a janela do navegador, em seguida, tomar a imagem e fechar o navegador.

Você pode encontrar mais informações aqui , ou apenas digitando --help importação em uma concha;)

http://khtml2png.sourceforge.net/

O arquivo deb

funcionou no meu Ubuntu após a instalação libkonq4 ... mas você pode ter que cobrir outras dependências.

Eu acho que suporte javascript pode ser melhor agora!

Stephan

Não para a linha de comando, mas, pelo menos para uso em operação em lote para um conjunto maior de URLs que você pode usar o Firefox com o seu FireShot addon (versão licenciada?).

  1. abas abertas para todas as URLs em seu conjunto (por exemplo, "abas abertas para todas as fichas nesta pasta ...").
  2. Em seguida, no lançamento FireShot "Capture todos os separadores"
  3. Na janela de edição, em seguida, chamar de "selecionar todos os tiros -> Salvar todos os tiros"

Depois de definir as propriedades de imagem de tela (tamanho, FileFormat, etc.) antes de terminar com um bom conjunto de shotfiles.

Steffen

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