screenshotmachine.comを使ってWebサイトのスクリー
ンショットを取得する
更新履歴
- 2021.12.25
はじめに
- screenshotmachine.comを使ってスクリーンショットを取得する.
- 外部からアクセスした際にどのように見えているか確認できる.
- なお,初回アクセス時にCookieの同意を求めるようなサイトでは,意図したようなスクショは取得できない.
インストール
- githubから入手する.
$ mkdir screenshotmachine🆑
[MacPro2013:ujpadmin 16:58:14 ~/bin ]
$ cd screenshotmachine🆑
[MacPro2013:ujpadmin 16:58:19 ~/bin/screenshotmachine ]
$ git clone
https://github.com/screenshotmachine/screenshotmachine-python🆑
Cloning into 'screenshotmachine-python'...
remote: Enumerating objects: 20, done.
remote: Total 20 (delta 0), reused 0 (delta 0), pack-reused 20
Receiving objects: 100% (20/20), 4.29 KiB | 1.43 MiB/s, done.
Resolving deltas: 100% (8/8), done.
[MacPro2013:ujpadmin 16:58:30 ~/bin/screenshotmachine ]
$ cd screenshotmachine-python/🆑
[MacPro2013:ujpadmin 16:58:45
~/bin/screenshotmachine/screenshotmachine-python ]
$ ls -la
total 20
drwxr-xr-x 8 ujpadmin staff 256 1 21 16:58 .
drwxr-xr-x 3 ujpadmin staff 96 1 21 16:58
..
drwxr-xr-x 12 ujpadmin staff 384 1 21 16:58 .git
-rw-r--r-- 1 ujpadmin staff 5 1 21
16:58 .gitignore
-rw-r--r-- 1 ujpadmin staff 1074 1 21 16:58 LICENSE
-rw-r--r-- 1 ujpadmin staff 3700 1 21 16:58 README.md
-rw-r--r-- 1 ujpadmin staff 1236 1 21 16:58 client.py
-rw-r--r-- 1 ujpadmin staff 1108 1 21 16:58
clientPdf.py
[MacPro2013:ujpadmin 16:58:47
~/bin/screenshotmachine/screenshotmachine-python ]
$
- プログラムを確認.
$ cat client.py🆑
import urllib.request
import urllib.parse
import hashlib
def generate_screenshot_api_url(customer_key, secret_phrase,
options):
api_url = 'https://api.screenshotmachine.com/?key=' +
customer_key
if secret_phrase:
api_url = api_url + '&hash=' +
hashlib.md5((options.get('url') +
secret_phrase).encode('utf-8')).hexdigest()
api_url = api_url + '&' +
urllib.parse.urlencode(options)
return api_url;
customer_key = 'PUT_YOUR_CUSTOMER_KEY_HERE'🈁
secret_phrase = '' # leave secret phrase empty, if not needed
options = {
'url': 'https://www.google.com', # mandatory parameter🈁
# all next parameters are optional, see our website
screenshot API guide for more details
'dimension': '1366x768', # or "1366xfull" for full length
screenshot
'device': 'desktop',
'cacheLimit' : '0',
'delay' : '200',
'zoom' : '100'
}
api_url = generate_screenshot_api_url(customer_key, secret_phrase,
options)
#put link to your html code
print('<img src="' + api_url + '">')
#or save screenshot as an image
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', '-')]
urllib.request.install_opener(opener)
output = 'output.png'
urllib.request.urlretrieve(api_url, output)
print('Screenshot saved as ' + output);
[MacPro2013:ujpadmin 19:27:12
~/bin/screenshotmachine/screenshotmachine-python ]
$
使ってみる
- ユーザ登録してログインし,APIキーを表示させて取得.
- その値をPUT_YOUR_CUSTOMER_KEY_HEREにセット.
- URLにスクリーンショットを取りたいサイトを設定して実行.
$ python3 client.py🆑
<img
src="https://api.screenshotmachine.com/?key=XXX&url=https%3A%2F%2Fwww.google.com&dimension=1366x768&device=desktop&cacheLimit=0&delay=200&zoom=100">
Screenshot saved as output.png
[MacPro2013:ujpadmin 19:30:13
~/bin/screenshotmachine/screenshotmachine-python ]
$ ls -la output.png🆑
-rw-r--r-- 1 ujpadmin staff 139718 1 21 19:30 output.png
[MacPro2013:ujpadmin 19:30:21
~/bin/screenshotmachine/screenshotmachine-python ]
$
- ダウンロードできたファイルを開くと次の通り.
- 初回アクセスだからCookiesの利用許諾画面が・・・