GNU/Linux >> Znalost Linux >  >> Debian

Jak pořídit screenshoty webových stránek z příkazového řádku

Existuje mnoho situací, kdy můžete chtít pořídit snímky obrazovky webové stránky. Jistě, existují rozšíření prohlížeče, která tuto práci dělají, ale pokud musíte pořizovat snímky obrazovky mnoha webových stránek, abyste je mohli archivovat nebo je generovat jako součást automatizovaného procesu, pak potřebujete nástroj příkazového řádku. Zde jsou čtyři nástroje, které pořizují snímky webových stránek z příkazového řádku.

pageres-cli

I když to není tak populární jako některé jiné, populárnější nástroje, pageres-cli je zdaleka nejlepší nástroj pro pořizování snímků obrazovky. Založený na PhantomJS a napsaný v Node.js přesně vykresluje i ty nejsložitější webové stránky.

Chcete-li nainstalovat pageres-cli, musíte nejprve nainstalovat Node.js a NPM. Poté otevřete okno terminálu a nainstalujte jej následovně:

sudo npm install -g pageres-cli

Po instalaci je pořizování snímků obrazovky hračkou:

pageres google.com

Tím získáte snímek obrazovky ve vašem aktuálním pracovním adresáři s názvem google.com-1366x768.png což, jak vidíte, je rozlišení 1366 × 768 a formát PNG.

Můžete zadat vlastní název souboru, formát a rozlišení. Zvažte následující příkaz:

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

Toto je dlouhý příkaz, takže si to pro vás rozebereme:

  • google.com a yahoo.com jsou adresy URL, jejichž snímky obrazovky jsou generovány.
  • 1280x800 označuje velikost obrazovky, na které je snímek obrazovky vykreslen.
  • --format určuje formát, který se má použít. V tomto případě jsme použili formát JPG.
  • --filename Určuje adresář, do kterého se ukládají snímky obrazovky, a formát, ve kterém jsou soubory pojmenovány. V našem případě jsme určili, že byste měli přejít do adresáře „Pictures“ a že názvy souborů by měly být datem následovaným podtržítkem (_ ) a dále následuje adresa URL.

Můžete dokonce nastavit různá nastavení pro různé webové stránky!

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

Nakonec můžete zjistit, že některé webové stránky vám při používání tohoto nástroje nabízejí „zjednodušené“ nebo „mobilní“ verze webových stránek. Řetězec uživatelského agenta můžete snadno změnit tak, aby připomínal moderní prohlížeč:

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

K dispozici je řada dalších možností; podívejte se na domovskou stránku projektu.

Ohnivá liška

Firefox 57 a novější verze mají režim snímání obrazovky příkazového řádku. Stejně jako pageres-cli, Firefox přesně zachycuje webové stránky, ale nemá tolik funkcí. Tento režim nepoužívá grafické prostředí, a proto je vhodný pro použití na serverech.

Chcete-li pořídit snímek obrazovky pomocí Firefoxu, postupujte takto:

firefox -screenshot google.png google.com

Tím se vytvoří celostránkový snímek obrazovky. vytvořeno google.com do souboru google.png . Firefox v současné době nepodporuje pořizování snímků obrazovky v jiných formátech. Pokud používáte jiné rozšíření, např. B. google.jpg , bude vytvořen soubor PNG s tímto názvem.

Chcete-li pořídit snímek obrazovky omezené velikosti, použijte --window-size Parametr. Pokud chcete například pořídit snímek obrazovky o velikosti 1366 × 768, postupujte takto:



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

Doplňky nainstalované ve Firefoxu také ovlivňují výstup; což se v mnoha případech docela hodí. Pokud například nainstalujete rozšíření pro blokování reklam, odstraní také reklamy ze snímků obrazovky.

Cutycapt

Zatímco pageres-cli a Firefox jsou skvělé, nejsou pro každého. Naštěstí existují další nástroje jako Cutycapt. K vykreslování webových stránek používá knihovnu QtWebkit.

Můžete jej nainstalovat pomocí Ubuntu a Debianu sudo apt install cutycapt; na jiných systémech jej můžete zkompilovat ze zdroje, jak je popsáno na jejich domovské stránce.

Snímek obrazovky můžete pořídit pomocí cutycapt takto:

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

cutycapt se pokusí rozpoznat formát výstupního souboru z názvu souboru. Mezi podporované formáty patří JPG, GIF, SVG a PNG.

Ve výchozím nastavení Cutycapt generuje snímky obrazovky o šířce 800 × 600. Výšku a šířku snímku obrazovky můžete ovládat následovně:

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

Tím získáte snímek obrazovky s rozlišením 1366 × 768.

Podívejte se na manuálovou stránku zadáním man cutycapt na terminálu zobrazíte seznam možností.

Pokud máte problémy s webovými stránkami, které nabízejí verzi „Lite“ nebo „Mobile“, zadejte řetězec user-agent podobný modernímu prohlížeči:

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

Pokud se však pokusíte spustit cutycapt na počítači bez spuštěného X serveru (jako většina serverů), selže. Měli byste použít xvfb spustit:

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

Ve výše uvedeném příkazu --server-args Parametr jednoduše vytvoří virtuální vyrovnávací paměť obrazovky o velikosti 1024 × 768 s barevnou hloubkou 24 bitů. Nemá to vliv na snímek obrazovky.

wkhtmltoimage

wkhtmltoimage, který je součástí wkhtmltopdf, je dalším nástrojem pro generování snímků obrazovky. Jeho rozsah funkcí je zaměřen na rychlé, automatizované generování snímků obrazovky; i když to není nejlepší, pokud chcete podrobnosti.

Měl by být dostupný v repozitářích vaší distribuce. V Debian / Ubuntu to získáte s sudo apt install wkhtmltopdf . Pokud není k dispozici ve vaší distribuci, můžete vždy použít předkompilované binární soubory nebo je zkompilovat ze zdroje.

Jedno slovo opatrnosti, pokud však chcete spustit wkhtmltoimage v prostředí bez X serveru, měli byste si pořídit předkompilované binární soubory – ty ve standardních repozitářích často nepodporují běh bez něj.

Chcete-li nainstalovat předkompilované binární soubory, stáhněte si nejnovější archiv pro svůj systém a proveďte následující:



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

Snímky obrazovky webových stránek můžete pořídit takto:

wkhtmltoimage google.com google.jpg

Je podporováno generování snímků obrazovky JPG a PNG. Velikost generovaných souborů JPG je však enormní

Vlastní šířku a výšku můžete nastavit zadáním:

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

V některých případech může být snímek obrazovky širší, než je uvedeno. Můžete to opravit přidáním --disable-smart-width Vlajka.

Bohužel neexistuje žádný spolehlivý způsob, jak změnit řetězec uživatelského agenta. Konkrétně můžete použít User-Agent HTTP hlavička, ale nemůžete ji změnit navigator.userAgent Hodnota prostřednictvím JavaScriptu (JS). Jak již bylo řečeno, falšování hlavičky HTTP je vše, co potřebujete pro mnoho případů použití. Můžete to udělat pomocí:

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

--custom-header-propagation Přepínač zajišťuje, že vlastní User-Agent HTTP hlavička pro získání všech zdrojů, jako jsou obrázky, soubory JS a obsah vloženého rámce.

Někdy při pořizování automatických snímků obrazovky možná budete chtít vidět, jak stránka vypadá bez JS. Můžete to udělat pomocí --disable-javascript Počítadlo:

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

Pokud potřebujete pořídit mnoho snímků obrazovky, možná budete chtít věci urychlit zkrácením času potřebného pro spuštění JS. Výchozí čas je 200 milisekund (ms), ale můžete jej snížit nebo zvýšit. Chcete-li například umožnit spuštění JS 45 ms, použijte:

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

Chcete-li zobrazit celou škálu dostupných možností, spusťte wkhtmltoimage --extended-help .

diplom

V tomto článku jsme viděli, jak pořizovat snímky webových stránek pomocí různých nástrojů – některé jsou zaměřeny na přesnost a jiné na rychlost.


Debian
  1. Jak nainstalovat aktualizace zabezpečení z příkazového řádku v Ubuntu

  2. Používání Disku Google z příkazového řádku systému Linux

  3. Jak restartovat Icewm z příkazového řádku?

  1. Jak zkontrolovat verzi Ubuntu z příkazového řádku

  2. Jak pořídit screenshoty webových stránek z příkazového řádku

  3. Jak stáhnu soubory z příkazového řádku pomocí příkazu wget?

  1. Jak nainstalovat software z příkazového řádku Linuxu

  2. Jak aktualizovat záznamy A z rozhraní příkazového řádku v Linuxu?

  3. Jak získám svou IP adresu z příkazového řádku?