技術雑記帳兼日記帳

AWS、Python、Terraformの使い方をコッソリ

python スクレイピング その6

はじめに

今回は巨人の藤田元司監督のWikiページを画像でコピーする処理を作成した。

準備

  • sele_headless.py
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
import time

url = 'https://ja.wikipedia.org/wiki/%E8%97%A4%E7%94%B0%E5%85%83%E5%8F%B8'

options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
driver.get(url)

width = driver.execute_script("return document.body.scrollWidth")
height = driver.execute_script("return document.body.scrollHeight")
driver.set_window_size(width, height)

time.sleep(3)
driver.save_screenshot("screenshot.png")

time.sleep(3)
driver.quit()
  • 実行方法
$ python sele_screenshot.py
  • 簡単な解説

下記で現行のChromeバージョンから最適なドライバを選択してくれる。

driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)

ここがこの処理の肝だと感じる。
スクリプト実行を意図的に行える。

width = driver.execute_script("return document.body.scrollWidth")
height = driver.execute_script("return document.body.scrollHeight")
driver.set_window_size(width, height)

まとめ

「ChromeDriverManager().install()」はパス名記載しないので、すごくスタイリッシュで格好良い。
execute_script()の応用の幅がありそう。