Programma da riga di comando per creare schermate di siti Web (su Linux) [chiuso]

StackOverflow https://stackoverflow.com/questions/125951

  •  02-07-2019
  •  | 
  •  

Domanda

Che cos'è un buon strumento da riga di comando per creare schermate di siti Web su Linux? Devo generare automaticamente schermate di siti Web senza interazione umana. L'unico strumento che ho trovato era khtml2png , ma mi chiedo se ce ne sono altri che non sono basati su khtml ( cioè avere un buon supporto JavaScript, ...).

È stato utile?

Soluzione

Un po 'più di dettagli potrebbe essere utile ...

Avvia un firefox (o un altro browser) in una sessione X, sulla tua console o usando un vncserver. Puoi utilizzare le opzioni --height e --width per impostare la dimensione della finestra a schermo intero. Un altro comando firefox può essere utilizzato per impostare l'URL visualizzato nella prima finestra di Firefox. Ora puoi prendere l'immagine dello schermo con uno dei numerosi comandi, come ad esempio "import" comando dal pacchetto Imagemagick, oppure usando gimp, fbgrab o 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

Altri suggerimenti

Prova un simpatico piccolo strumento CutyCapt , che dipende solo da Qt e QtWebkit. ;)

Dai un'occhiata a PhantomJS , che sembra essere un motore Webkit scrivibile gratuito che gira su Linux, OSX e Windows. Non lo uso da quando attualmente utilizziamo Browshot (soluzione commerciale), ma quando tutti i nostri crediti si esauriranno, avremo seriamente un bottino a (poiché è gratuito e può essere eseguito sui nostri server)

scrot è uno strumento da riga di comando per acquisire schermate. Vedi la man page e questa tutorial .

Potresti anche voler dare un'occhiata agli script del browser. Ci sono componenti aggiuntivi di Firefox che prendono screenshot come screengrab (che puoi catturare l'intera pagina se lo desideri, non solo il bit visibile) e puoi quindi eseguire lo scripting del browser con greasemonkey per prendere gli screenshot.

Vedi Webkit2png .

Penso che sia quello che ho usato in passato.

Modifica Scopro di non aver usato quanto sopra, ma ho trovato questa pagina con recensioni di molti programmi e tecniche diversi.

So che non è uno strumento da riga di comando, ma potresti facilmente scrivere qualcosa da usare http://browsershots.org/ Non molto utile per le applicazioni non ospitate su IP esterni.

Un ottimo strumento comunque.

Non so nulla di personalizzato, sono sicuro che potrebbe esserci qualcosa con il motore gecko da renderizzare in un file png invece che sullo schermo ...

In alternativa, potresti avviare firefox in modalità a schermo intero in un'istanza del server VNC dedicata e utilizzare uno screenshot per acquisire lo screenshot. Schermo intero = chrome minimo, istanza del server VNC = nessuna UI visibile + puoi scegliere la tua risoluzione.

Usa xinit con Xvnc come server X per fare questo - dovrai leggere tutte le manpage.

I lati negativi sono che lo screenshot ha sempre le stesse dimensioni, non si ridimensiona in base alla pagina web ...

Esiste il comando importa , ma avrai bisogno di X e di un piccolo script bash che apre la finestra del browser, quindi cattura lo screenshot e chiude il browser.

Puoi trovare maggiori informazioni qui , o semplicemente digitando import --help in una shell;)

http://khtml2png.sourceforge.net/

Il file deb

ha funzionato sul mio Ubuntu dopo aver installato libkonq4 ... ma potresti dover coprire altre dipendenze.

Penso che il supporto JavaScript possa essere migliore ora!

Stephan

Non per la riga di comando ma almeno per l'utilizzo in operazioni batch per un set più ampio di URL è possibile utilizzare Firefox con il suo componente aggiuntivo fireshot (versione con licenza?).

  1. Apri le schede per tutti gli URL del tuo set (ad es. " apri le schede per tutti i segnalibri in questa cartella ... ").
  2. Quindi, avvia fireshot " Cattura tutte le schede "
  3. Nella finestra di modifica, chiama " seleziona tutti gli scatti - > salva tutti gli scatti "

Dopo aver impostato le proprietà dello screenshot (dimensione, formato file, ecc.) prima di terminare con un bel set di shotfile.

Steffen

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top