Playwright for Python の page.screenshot()
でスクリーンショットを取得するときに指定できる「便利なオプション3選」を紹介する❗️
1. full_page
ウェブサイトのスクリーンショットを「全て」取得する場合 full_page
オプションが使える💡デフォルトは False
になっているけど,使う機会は多いと思う❗️以下のように実装できる.
page.screenshot(path='images/1_full.png', full_page=True)
2. clip
ウェブサイトのスクリーンショットを「部分的に」取得する場合 clip
オプションが使える💡スクリーンショットを長期間残しておくと,アーカイブしておくファイルサイズも増えてくるため,本当に必要な部分に限定してスクリーンショットを取得しておくのは良いプラクティスだと思う❗️
x
(軸にする x 座標)y
(軸にする y 座標)width
(横幅 px)height
(縦幅 px)
以下のように実装できる.
page.screenshot(path='images/2_clip.png', clip={'x': 150, 'y': 150, 'width': 400, 'height': 400})
3. mask
スクリーンショットの一部を「隠して」取得する場合 mask
オプションが使える💡隠す箇所には Playwright for Python の Locator
オブジェクトを配列で指定する.例えば kakakakakku blog の "ブログタイトル" と "記事タイトル" を隠すなら,以下のように実装できる.ドキュメントを確認したところ,現状だと色はピンク (#FF00FF
) 固定になっていた.
page.screenshot(path='images/4_mask.png', mask=[page.locator('#title > a'), page.locator('.entry-title')])
今回試したサンプルコード
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch() page = browser.new_page() page.goto('https://kakakakakku.hatenablog.com/') page.screenshot(path='images/0_default.png') page.screenshot(path='images/1_full.png', full_page=True) page.screenshot(path='images/2_clip.png', clip={'x': 150, 'y': 150, 'width': 400, 'height': 400}) page.screenshot(path='images/3_mask.png', mask=[page.locator('#title > a'), page.locator('.entry-title')]) browser.close()