GNU/Linux >> Linux Esercitazione >  >> Debian

Come acquisire schermate di pagine Web dalla riga di comando

Ci sono molte situazioni in cui potresti voler fare screenshot di una pagina web. Certo, ci sono estensioni del browser che fanno il lavoro, ma se devi acquisire screenshot di molti siti Web per archiviarli o generarli come parte di un processo automatizzato, allora hai bisogno di uno strumento da riga di comando. Ecco quattro strumenti che acquisiscono schermate di pagine Web dalla riga di comando.

pageres-cli

Sebbene questo non sia così popolare come alcuni degli altri strumenti più popolari, pageres-cli è di gran lunga lo strumento migliore per acquisire schermate. Basato su PhantomJS e scritto in Node.js, rende in modo accurato anche le pagine Web più complesse.

Per installare pageres-cli devi prima installare Node.js e NPM. Quindi apri una finestra di terminale e installala come segue:

sudo npm install -g pageres-cli

Dopo l'installazione, acquisire screenshot è un gioco da ragazzi:

pageres google.com

Questo ti darà uno screenshot nella tua attuale directory di lavoro con il nome google.com-1366x768.png che, come puoi vedere, ha una risoluzione di 1366 × 768 e un formato PNG.

È possibile specificare il proprio nome file, formato e risoluzione. Considera il seguente comando:

pageres google.com yahoo.com 1280x800 --format=jpg --filename="Pictures/<%= date %>_<%= url %>"

Questo è un comando lungo, quindi analizziamolo per te:

  • google.com e yahoo.com sono gli URL di cui vengono generati gli screenshot.
  • 1280x800 indica la dimensione dello schermo in cui viene visualizzato lo screenshot.
  • --format specifica il formato da utilizzare. In questo caso abbiamo utilizzato il formato JPG.
  • --filename Specifica la directory in cui vengono salvate le schermate e il formato in cui sono denominati i file. Nel nostro caso abbiamo specificato che dovresti andare nella directory "Immagini" e che i nomi dei file dovrebbero essere la data seguita da un trattino basso (_ ) e ulteriormente seguito dall'URL.

Puoi persino impostare impostazioni diverse per diversi siti Web!

pageres [google.com 1280x800] [yahoo.com 800x600]

Alla fine, potresti scoprire che alcuni siti Web ti offrono versioni "Lite" o "Mobile" delle pagine Web durante l'utilizzo di questo strumento. Puoi facilmente modificare la stringa dell'agente utente in modo che assomigli a un browser moderno:

pageres echo.opera.com --user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'

Sono disponibili una varietà di altre opzioni; guarda quella Homepage del progetto.

Volpe di fuoco

Firefox 57 e le versioni successive hanno una modalità screenshot della riga di comando. Proprio come pageres-cli, Firefox acquisisce accuratamente le pagine Web, ma non ha molte funzionalità. Questa modalità non utilizza un ambiente grafico, motivo per cui è adatta per l'uso su server.

Per acquisire uno screenshot utilizzando Firefox, procedi come segue:

firefox -screenshot google.png google.com

Ciò richiederà uno screenshot a pagina intera del file. creato google.com al file google.png . Firefox attualmente non supporta l'acquisizione di schermate in altri formati. Se stai utilizzando un'altra estensione, ad es. B. google.jpg , verrà creato un file PNG con questo nome.

Per acquisire uno screenshot di dimensioni limitate, utilizza il --window-size Parametro. Ad esempio, se desideri acquisire uno screenshot di dimensioni 1366 × 768, procedi come segue:



firefox -screenshot google.png google.com --window-size=1366,768

Anche i componenti aggiuntivi installati in Firefox influiscono sull'output; che è abbastanza utile in molti casi. Ad esempio, se installi un'estensione per il blocco degli annunci, verranno rimossi anche gli annunci negli screenshot.

Capitolo sveglio

Sebbene pageres-cli e Firefox siano fantastici, non sono per tutti. Fortunatamente, ci sono altri strumenti come Cutycapt. Utilizza la libreria QtWebkit per il rendering di pagine Web.

Puoi installarlo con Ubuntu e Debian sudo apt install cutycapt; su altri sistemi puoi compilarlo dal sorgente come descritto nella loro home page.

Puoi fare uno screenshot con cutycapt in questo modo:

cutycapt --url=google.com --out=google.png

cutycapt proverà a riconoscere il formato del file di output dal nome del file. I formati supportati includono JPG, GIF, SVG e PNG.

Per impostazione predefinita, Cutycapt genera screenshot con una larghezza di 800 × 600. Puoi controllare l'altezza e la larghezza dello screenshot come segue:

cutycapt --url=google.com --out=google.png --min-width=1366 --min-height=768

Questo ti darà uno screenshot della risoluzione 1366 × 768.

Dai un'occhiata alla pagina man digitando man cutycapt sul terminale per visualizzare un elenco di opzioni.

In caso di problemi con i siti Web che offrono versioni "Lite" o "Mobile", fornisci una stringa agente utente simile a un browser moderno:

cutycapt --url=... --out=... --user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'

Tuttavia, se provi a eseguire cutycapt su una macchina senza server X in esecuzione (come la maggior parte dei server), fallirà. Dovresti usare xvfb per eseguirlo:

xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=... --out=...

Nel comando precedente, il --server-args Il parametro crea semplicemente un buffer dello schermo virtuale di dimensioni 1024 × 768 con una profondità di colore di 24 bit. Non influisce sullo screenshot.

wkhtmltoimage

wkhtmltoimage, che è incluso come parte di wkhtmltopdf, è un altro strumento per generare screenshot. La sua gamma di funzioni è orientata alla generazione veloce e automatizzata di screenshot; anche se non è meglio se vuoi i dettagli.

Dovrebbe essere disponibile nei repository della tua distribuzione. Sotto Debian / Ubuntu lo ottieni con sudo apt install wkhtmltopdf . Se non è disponibile nella tua distribuzione, puoi sempre utilizzare i binari precompilati o compilarlo dal sorgente.

Un avvertimento, tuttavia, se vuoi eseguire wkhtmltoimage in un ambiente senza un server X, dovresti ottenere il binario precompilato:quelli nei repository standard spesso non supportano l'esecuzione senza di esso.

Per installare i binari precompilati, scarica l'ultimo archivio per il tuo sistema e procedi come segue:



sudo tar -xf wkhtmltox-*.tar.xz -C /opt
sudo mkdir -p /usr/local/lib /usr/local/share/man/man1
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/local/lib
sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/local/lib
sudo ln -s /opt/wkhtmltox/share/man/man1/wkhtmltoimage.1.gz /usr/local/share/man/man1
sudo ln -s /opt/wkhtmltox/share/man/man1/wkhtmltopdf.1.gz /usr/local/share/man/man1

Puoi acquisire schermate di pagine Web facendo:

wkhtmltoimage google.com google.jpg

È supportata la generazione di screenshot JPG e PNG. Tuttavia, la dimensione dei file JPG generati è enorme

Puoi impostare una larghezza e un'altezza personalizzate specificando:

wkhtmltoimage --height 1200 --width 800 google.com google.png

In alcuni casi lo screenshot potrebbe essere più ampio di quanto indicato. Puoi risolvere il problema aggiungendo il --disable-smart-width Segnala.

Sfortunatamente, non esiste un modo affidabile per modificare la stringa dell'agente utente. In particolare, puoi utilizzare il User-Agent Intestazione HTTP, ma non puoi cambiarla navigator.userAgent Valore tramite JavaScript (JS). Detto questo, forgiare l'intestazione HTTP è tutto ciò che serve per molti casi d'uso. Puoi farlo con:

wkhtmltoimage --custom-header-propagation --custom-header User-Agent 'Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0' google.com google.jpg

il --custom-header-propagation Switch garantisce che il User-Agent personalizzato Intestazione HTTP per ottenere tutte le risorse come immagini, file JS e contenuto inline frame.

A volte durante l'acquisizione di schermate automatizzate, potresti voler vedere come appare la pagina senza JS. Puoi farlo usando il --disable-javascript Contatore:

wkhtmltoimage --disable-javascript google.com google.jpg

Se hai molti screenshot da acquisire, potresti voler accelerare le cose riducendo il tempo necessario per l'esecuzione di JS. Il tempo predefinito è 200 millisecondi (ms), ma puoi diminuirlo o aumentarlo. Ad esempio, se desideri consentire 45 ms per l'esecuzione di JS, utilizza:

wkhtmltoimage --javascript-delay 45 google.com google.jpg

Per vedere l'intera gamma di opzioni disponibili, esegui wkhtmltoimage --extended-help .

diploma

In questo articolo, abbiamo visto come acquisire schermate di pagine Web utilizzando una varietà di strumenti, alcuni ottimizzati per la precisione e altri per la velocità.


Debian
  1. Come aggiornare un record dall'interfaccia della riga di comando in Linux?

  2. Come riavviare Icewm dalla riga di comando?

  3. Come controllare la versione di Ubuntu dalla riga di comando

  4. Come acquisire schermate di pagine Web dalla riga di comando

  5. Come ottengo il mio indirizzo IP dalla riga di comando?

Come controllare la versione di Ubuntu dalla riga di comando

Come spegnere Debian 10 dalla riga di comando e dalla GUI

Come installare il browser Google Chrome su Ubuntu 20.04 dalla riga di comando

Googler:esegui ricerche su Google dalla riga di comando

Come impostare il browser predefinito dalla riga di comando?

Come installare Google Chrome su Ubuntu 18.04 utilizzando la riga di comando?