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
ayahoo.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.