Tire uma captura de tela da página da web em intervalos?

2

Eu preciso de uma maneira de atualizar uma determinada página da Web e fazer uma captura de tela a cada 5 minutos. Eu sou novo no Ubuntu, mas estou disposto a usar o terminal, etc. Se forem dados passos, usei-o antes, só não sei como escrever meus próprios scripts.

Idealmente, eu teria a página da web aberta, e a página seria atualizada e faria uma captura de tela a cada 5 minutos. Qualquer ajuda com isso?

    
por Michael Jenkins 23.05.2012 / 01:59

4 respostas

4

O aplicativo de captura de tela 'shutter' tem o que você está procurando.

Em um terminal, faça sudo apt-get install shutter

Não há maneira de fazer GUI para fazer isso a cada cinco minutos com o obturador, mas podemos fazer o trabalho com a linha de comando.

Copie o seguinte no gedit:

 #! /bin/bash
 while true; do
     shutter --web='WWW-HERE' -e
     sleep 5m
 done

Substitua WWW-HERE pelo endereço que você deseja capturar. Agora salve-o em sua pasta pessoal com um nome que você possa lembrar e que queira chamá-lo.

Abra um terminal e faça chmod +x FILE e, em seguida, sudo cp FILE /usr/local/bin Lembrando de substituir FILE pelo nome que você escolheu.

Agora você pode abrir um terminal e digitar o nome do arquivo escolhido para iniciá-lo fazendo capturas de tela a cada cinco minutos. Para pará-lo, pressione Ctrl + C no seu teclado. Se você quiser continuar até o seu logout, você pode simplesmente digitar o nome que você escolheu depois de pressionar Alt + F2 , e ele irá continuar para sempre em segundo plano. / p>

Para salvar os arquivos em outro lugar ou com um nome especial, você pode adicionar o --output flag ao comando do obturador (antes do -e!). Então mude essa linha para ler algo assim, por exemplo:

shutter --web='WWW-HERE' --output='~/Shots/Web%Y%m%d%T' -e

Isso salva na pasta chamada Disparos (deve existir!) na sua pasta pessoal e nomeia o arquivo de acordo com a hora e a data.

Alternativamente, você pode abrir o obturador e navegar até Editar > Preferências e selecione um diretório onde você gostaria de salvar.

UmexemplodecapturadeteladoGoogleDoodledehojeé aqui

    
por Mark Paskal 23.05.2012 / 08:17
0

Nota : Eu não tentei isso, mas você poderia usar algo como scrot (para tirar a captura de tela) e um comando "at" para fazer o truque. Veja dois recursos que podem ser úteis:

Screenshots do terminal: link

Usando o comando "at": link

    
por Mordoc 23.05.2012 / 05:48
0

Eu já tive um roteiro para tirar uma foto da minha tela a cada minuto e enviá-lo. Eu tentei criar algo semelhante para você aqui. Como Mordoc mencionou, você pode usar scrot . Você terá que sudo apt-get install scrot primeiro.

Aqui está o script. As linhas que começam com "#" são comentários, por isso vou usá-las para tentar explicá-lo:

#!/bin/bash
# ^This first line just tells linux which script language to use.
#  We're using bash

# Because this script runs as a Cron-job, it runs as root and doesn't
# necessarily know which user you're logged in as.  For me, this says "use
# the default display, ie the first person logged in on the computer"
DISPLAY=:0
HOME=/home/vose
export DISPLAY
export HOME

# Create the screenshots directory in case it doesn't exist yet
mkdir -p /home/vose/Pictures/Screenshots/

# Delete any screenshots more than 7 days old.
find /home/vose/Pictures/Screenshots/ -type f -mtime +7 -delete

# Launch the browser (I use firefox for normal, so I'll use chrome for this)
# The "sudo -u vose ..." means "run the command as user 'vose'".  You'll
# You'll need to put your username in there...
# The "&" at the end means 'launch in the background', so the script
# can keep going.
echo "Opening the browser"
sudo -u vose chromium-browser http://google.com &

# This records the ProcessID (pid) of the last opened program
# (chromium) so we can kill it later
pid=$!

# Wait 10 seconds for the browser to open and page to load
# On a slow computer/connection/webpage you may need to wait longer
sleep 10

# Take the screenshot using scrot.  Save it to this file
scrot /home/vose/Pictures/Screenshots/screenshot_'date +%F-%H-%M-%S'.jpg
echo "Created screenshot_'date +%F-%H-%M-%S'.jpg"

# Kill the browser
kill $pid

Antes de tentar ir longe demais, pare e veja se isso funciona.

  1. Primeiro, salve o script acima como takeScreenshot.sh .

  2. Depois de um terminal, digite chmod +x takeScreenshot.sh (Chmod altera as permissões em um arquivo e '+ x' significa que estamos dando permissão para "executar" o script.)

  3. Execute ./takeScreenshot.sh em uma linha de comando - isso executará o script manualmente. Veja se o arquivo aparece na sua pasta de fotos depois de fazer isso.

  4. Se isso funcionou, precisamos adicioná-lo agora a Cron .

Em uma linha de comando, digite sudo crontab -e . (Se perguntar a você qual editor, escolha Nano. Se você não usou antes, peça ajuda).

No arquivo, você quer adicionar uma linha na parte inferior, assim:

# m h  dom mon dow   command
*/5 * * * * /home/vose/Scripts/takeScreenshot.sh

O que isso diz:

  • A cada 5 minutos
  • A cada hora, todos os dias do mês, todos os meses, todos os dias da semana
  • Execute "/home/vose/Scripts/takeScreenshot.sh"

(uma pequena pegadinha: certifique-se de que há uma linha em branco após sua entrada no crontab. A última linha do arquivo é ignorada, então você precisa de uma linha em branco após o seu comando).

Bem, espero que esse longo post ajude! Pode haver maneiras de fazer isso sem a linha de comando, mas você terá que olhar em volta.

    
por Jason O'Neil 23.05.2012 / 07:44
0

Experimente esta ferramenta: link  Não é a cada 5 minutos, mas se o intervalo de uma hora é suficiente para você, é perfeito para as suas necessidades.

    
por rozsypal 22.01.2015 / 13:07