敵のいない勉強部屋

日々学んだことや感じたことを書きます

英語字幕DB作成への道_Selenium編⑩ (selenium-wire)

DisneyPlusの動画を再生すると、ブラウザが裏側で .vtt という字幕ファイルをダウンロードします。

このファイルを手動でダウンロードするには、開発者ツールを開いて、Networkタブを開いて、
.vtt のURLをコピーして、wgetする必要があります。

なんとかこれを自動化したい。
ChromeOptionsやDesiredCapabilitiesで頑張ればなんとかできそうではあったのですが、
ChromeDriverのドキュメントがあまり親切ではなくて使い方がよくわかりませんでした。

そうしてネットの海をさまようことになったのですが、
そこで素晴らしいライブラリを見つけました。
それはselenium-wire
pypi.org

こんな感じで、Chromeがバックグラウンドで通信しているデータを取得できます。

from seleniumwire import webdriver  # Import from seleniumwire

# Create a new instance of the Chrome driver
driver = webdriver.Chrome()

# Go to the Google home page
driver.get('https://www.google.com')

# Access requests via the `requests` attribute
for request in driver.requests:
    if request.response:
        print(
            request.url,
            request.response.status_code,
            request.response.headers['Content-Type']
        )

※今回はこのrequest.urlが欲しかった

なんと素晴らしいライブラリでしょう。
無事に .vtt のURLを取得することができました。

ありがとう! selenium-wireの開発者の方!