@th8687rr

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

python selenium aタグ取得

解決したいこと

python でスクレイピングをしています。
このURL内の('https://etherscan.io/token/0x846c66cf71c43f80403b51fe3906b3599d63336f#balances')
Address部分に対して、seleniumを使用しhtmlコードを取得したいと思っています(aタグhrefを取得したい)。
seleniumのcssセレクタで取得しようと数時間以上取得を試みているのですが、全く取得できず途方に暮れています。。

seleniumのcssセレクタでこの赤丸で囲んだaタグhrefを取得するコードを教えて頂けませんでしょうか。
普段はspyderを使用しています。

image.png

発生している問題・エラー

None という表示

image.png

0 likes

1Answer

テーブルが iframe の中にあるからです。 iframe 内の要素を選択するにはまずその iframe にフォーカスしてください。

driver.get('https://etherscan.io/token/0x846c66cf71c43f80403b51fe3906b3599d63336f#balances')
sleep(1)

iframe = driver.find_element_by_css_selector('#tokeholdersiframe')
driver.switch_to.frame(iframe)
1Like

Comments

  1. @th8687rr

    Questioner

    ありがとうございます!解決できました。大変助かりました。尚、同様にiframe内の要素をBeautifulSoupで取得する際のコードも教えて頂けませんでしょうか。調べてもなかなか分かりやすいものがなく、、
  2. まず iframe とは、別のページを現在のページに埋め込んで表示する仕組みです。現在のページの iframe には src 属性で別のページの URL が指定されています。ページは見た目埋め込まれていても DOM としては隔離されているので、 iframe に子孫要素は存在せず、したがってセレクタでも取り出せません。

    BeautifulSoup を使うなら iframe の src 属性から URL を取り出し、そのページを新たにスクレイピングしてください。
  3. @th8687rr

    Questioner

    よく理解できました。ありがとうございました!

Your answer might help someone💌