docker_capture_web
docker_capture_web copied to clipboard
Docker Container to take full screenshot of a web page
About
Webページ全体のScreenShot画像を取得するDockerコンテナです。 Google Chromeのheadlessを使っています。 縦長のWebページでもだいたい上手くScreenShotをとることができます。 固定ヘッダーがあっても概ね大丈夫ですが、固定フッターはおそらく変な結果になると思います。
A Docker container that captures a fullpage screenshot of any given webpage. Uses Google Chrome in headless mode. Works well even with vertically long webpages. Webpages with fixed headers generally work well, but fixed footers may lead to unusual results.
Requirements
以下の環境で動作を確認しています。
Tested on the following environments
macOS
- macOS High Sierra 10.13.3
- Docker Community Edition Version 18.03.0-ce-mac59
Linux
- Linux 6.1
- Docker Version 23.0.1, build a5ee5b1dfc
How To Use
Build
./build
Then either run
docker run --rm -v `pwd`:/tmp/screenshot -v /dev/shm:/dev/shm mokemokechicken/capture_web <URL> <output_image.png> [options]
or run
./capture <URL> <output_image.png> [options]
Examples
PC
docker run --rm -v `pwd`:/tmp/screenshot -v /dev/shm:/dev/shm mokemokechicken/capture_web "https://www.yahoo.co.jp/" yahoo_pc.png
iPhone
docker run --rm -v `pwd`:/tmp/screenshot -v /dev/shm:/dev/shm mokemokechicken/capture_web "https://www.yahoo.co.jp/" yahoo_sp.png -w 414x735 --ua 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
Help
% docker run --rm -v `pwd`:/tmp/screenshot -v /dev/shm:/dev/shm mokemokechicken/capture_web
usage: screenshot.py [-h] [-w WINDOW_SIZE] [--ua USER_AGENT] [--wait WAIT] [--lang LANG] [--language LANGUAGE]
[-v] [--vv]
url filename
positional arguments:
url specify URL
filename specify capture image filename
optional arguments:
-h, --help show this help message and exit
-w WINDOW_SIZE specify window size like 1200x800
--ua USER_AGENT specify user-agent
--wait WAIT specify wait seconds after scroll
--lang LANG set LANG environment variable
--language LANGUAGE set LANGUAGE environment variable
-v set LogLevel to INFO
--vv set LogLevel to DEBUG