ちょっと前までクラスやidで値を取れていたのに、急にエラーを出すようになりました。
Google colabを使っていたのでヘッドレスモードのため実際の画面がどうなってるか目視できないのと、いろいろ原因を調べた結果どうやらどこか別のページにリダイレクトしているっぽいなと気づきました。
そこで本当に思っているサイトに飛んでいるのか確認する必要があり、現在どのページをドライバーが見ているのかをURLで取得する方法を調べた時の備忘録です。
動作環境
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を確認するようにした方が良さそうですね。