https://github.com/stop-covid19-hyogo/covid19/blob/development/ui-test/ogp_screenshot.py
import pathlib from urllib.parse import urljoin from playwright import sync_playwright PATHS = { "/cards/details-of-confirmed-cases": (959, 500), "/cards/number-of-confirmed-cases": (959, 500), "/cards/attributes-of-confirmed-cases": (959, 480), "/cards/number-of-tested": (959, 540), "/cards/patients-by-age": (959, 500), "/cards/patients-by-clusters": (959, 500), "/cards/changes-in-number-of-hospitalized-patients": (959, 500), } with sync_playwright() as p: browser = p.chromium.launch() for lang in ("ja", "en", "zh-cn", "zh-tw", "ko", "ja-basic"): for path, size in PATHS.items(): link = urljoin( "https://stop-covid19-hyogo.org/", f'{"" if lang == "ja" else lang}{path}?ogp=true', ) width, height = size path = path.replace("/cards/", "").replace("/", "_") if lang == "ja": p = pathlib.Path("ogp", path + ".png") else: p = pathlib.Path("ogp", lang, path + ".png") p.parent.mkdir(parents=True, exist_ok=True) # 言語指定 page = browser.newPage(locale=lang) # サイズ指定 page.setViewportSize(width=width, height=height) page.goto(link) # スクリーンショット page.screenshot(path=p) page.close() browser.close()