UJP - 技術情報1

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

screenshotmachine.comを使ってWebサイトのスクリーンショットを取得する

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の利用許諾画面が・・・

広告スペース
Google