今pythonでseleniumを使ってスクレイピングをしようとしています。しかし、find_element_by_tag_nameでタグを指定してもエラーが出て、取得することができません。
試した事
サイト内で必ずaタグがあることを確認。
find_element_by_tag_nameの前で4秒待機しても上手くいきません。
他のタグでも確認しましたが、上手くいきませんでした。
URLをgoogleの公式ページにしたら、aタグを取得することができました。なので、このコード自体はそこまで間違っていないと思いますが、何が問題なのでしょうか。
python
1コード 2import time # スリープを使うために必要 3from selenium import webdriver # Webブラウザを自動操作する(python -m pip install selenium) 4import chromedriver_binary # パスを通すためのコード 5 6 7driver = webdriver.Chrome() # Chromeを準備 8driver.get('http://ID:pass@---------/index.html') # Basic認証でログイン 9time.sleep(4) 10p = driver.find_element_by_tag_name('a') 11print(p) 12time.sleep(10) # 10秒間待機 13driver.quit()
以下のようなエラー
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"a"} (Session info: chrome=97.0.4692.71)
aタグが存在しないのでしょう。
time.sleep(4) を time.sleep(120)とかにしてその間にブラウザ画面・開発者ツールなどで確認しましょう。
返信ありがとうございます。
今確認したところ、<a>タグは<frameset>タグの中の<frame>タグの中にありました。<frame src="3.html">と書かれていたので、URLの最後をindex.htmlではなく3.htmlに変更したところ、aタグを取得することができました。
今日の4時間ぐらいの謎が解けました。ありがとうございました。
回答1件
あなたの回答
tips
プレビュー