driver.get(url)で取得したURLの中身が意図したURLか確認する方法!SeleniumとPythonでスクレイピング

ちょっと前までクラスやidで値を取れていたのに、急にエラーを出すようになりました。

Google colabを使っていたのでヘッドレスモードのため実際の画面がどうなってるか目視できないのと、いろいろ原因を調べた結果どうやらどこか別のページにリダイレクトしているっぽいなと気づきました。

そこで本当に思っているサイトに飛んでいるのか確認する必要があり、現在どのページをドライバーが見ているのかをURLで取得する方法を調べた時の備忘録です。

動作環境

Google colab

seleniumとchromedriverをインストールして実施。

2022/05/12に動作確認。

driver.get(url)のURL確認方法

現在のURLは以下で取れました。

driver名.current_url

割とそのまま

サンプルコード

Google colabで実際に下記コードを使うと実行可能です。

!pip install selenium

!apt install chromium-chromedriver

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver',options=options)

#指定したURLに遷移
driver.get("https://programmer-life.work")
#カレントページのURLを取得
cur_url = driver.current_url
#カレントページのURLを表示
print(cur_url)

結果

https://programmer-life.work/

これで無事に現在のページが取得できました。
上記の指定したURLはリダイレクトをかけていないので、そのまま同一のURLが返ってきています。URLを調べたいサイトにして確認してみてください。

おわり

最初はURLが正しく返ってきていても、リクエストを送りすぎたりするとリダイレクトするようになったりするので、エラーをくらって時間を消耗する前にまずはカレントURLを確認するようにした方が良さそうですね。