2024年02月

2024年02月28日 06:45

ブラウザの自動化って言ったら、やっぱSeleniumが出てくる人が多いと思う。
でももう一つの案として、Puppeteerっていうのがあって、それがすごい使いやすかったら?
私はJSが嫌いなPy専な人間なんで、本来JS用のPuppeteerをPythonに移植したpyppeteerを使ってるんですが、これが本当にいい。
Seleniumみたいにバージョンの合うChromeDriverをダウンロードしてきたり、うまく動いてくれないfind_elementと格闘する必要はもうないんだ
初回起動時は勝手にChromiumを落としてくれるし、実装もbrowserをlaunchして、pageを取得して操るだけ。
非同期処理にも対応してるし、Seleniumに比べればだいぶシンプルでわかりやすい。
ということでSeleniumのコードと比較しよう。
とりあえず例としてYahooのスクリーンショットを撮るプログラム。
Selenium
chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.yahoo.co.jp/")
driver.set_window_size(1024, 768)
driver.save_screenshot("ファイル名")
driver.quit()
これでも全然しっくりくる。でもちょっと長ったらしくて汚い。
Puppeteer
browser = await launch(headless=False)
page = (await browser.pages())[0]
await page.setViewport({"width": 1024, "height": 768})
await page.goto("https://www.yahoo.co.jp/")
await page.screenshot(path="ファイル名")
await browser.close()

どうだろう、Seleniumに比べたらだいぶシンプルで直感的だと思う。
Pythonの癖してJSみたいな関数名を引き継いでるのは違和感ではあるが。

こんな感じでPuppeteerはSeleniumに比べ、結構直感的で非同期処理にも対応してるしすごいいいと思う。
欠点があるとすれば元のJS版が俺が宗教上の理由で嫌ってるGoogle製ってことくらいかなー


2024年02月22日 22:03

やるべきこと、やりたいことが何もできない
やりたいことをやろうと思うと、気づいたら関係ないことで6時間くらい消えてたり。
やらないといけないタスクをこなそうとするとストレスの連鎖で死にたくなるまで追い込まれる。
前者はADHDかなんかによるもの、後者は前からずっと持ってる統合失調症とネガティブ思考とか色々が絡んでそうなってそう。
近いうちに病院にでも行こうと思うけども、このままじゃ困りに困るし改善したらいいなぁって思ってる


ギャラリー
  • ウイルスと共にあれ! 迷惑メールで送られてきたウイルスをインストールしてみた
  • ウイルスと共にあれ! 迷惑メールで送られてきたウイルスをインストールしてみた
  • ウイルスと共にあれ! 迷惑メールで送られてきたウイルスをインストールしてみた
  • ウイルスと共にあれ! 迷惑メールで送られてきたウイルスをインストールしてみた
  • ウイルスと共にあれ! 迷惑メールで送られてきたウイルスをインストールしてみた
  • ウイルスと共にあれ! 迷惑メールで送られてきたウイルスをインストールしてみた
  • 2023年買ってよかったものランキング
  • 2023年買ってよかったものランキング
  • 2023年買ってよかったものランキング
カテゴリー
  • ライブドアブログ