gpt4 book ai didi

python - Selenium、动态内容、chrome webdriver

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:30 27 4
gpt4 key购买 nike

我试图了解如何抓取一些动态网页,但我无法让它工作。

(我当前正在玩的页面是betfair.com,该页面上有他们的现场投注足球页面有一个动态的比赛统计页面。要查看实际效果,请访问betfair.com->赔率->现场投注,点击任何足球比赛。)

它嵌入在两个 iframe 中,我可以使用以下方式访问它们:

frame1 = browser.find_element_by_xpath('//iframe[contains(@class, "player")]')
browser.switch_to.frame(frame1)

frame2 = browser.find_element_by_xpath('//iframe[contains(@id, "playerFrame")]')
browser.switch_to.frame(frame2)

我恢复了一个 iframe 并且可以切换到它。到目前为止,一切都很好。然而,当我现在尝试使用“浏览器”来做任何事情时,我没有得到任何回应。

为了阅读内容还需要做什么吗?我正在尝试类似的事情:

browser.find_element_by_xpath("//div[contains(@id, 'in-game-stats')]")

上面的内部 iframe 确实包含 id。另外,如果我使用 chrome 开发工具尝试上述手动步骤,它确实有效。有什么线索可以解释为什么我没有得到上述答案吗?我需要等待某些内容才能可用吗?

最佳答案

您的 frame2 下面有第三个 iframe,请在请求in-game-stats 之前选择它。大家一起,

frame1 = browser.find_element_by_xpath('//iframe[contains(@class, "player")]')
browser.switch_to.frame(frame1)

frame2 = browser.find_element_by_xpath('//iframe[contains(@id, "playerFrame")]')
browser.switch_to.frame(frame2)

您可以尝试找到更好的方法来识别最后一个 iframe,这里我将把它索引为 iframe2 下的第一个 iframe。

frame3 = browser.find_element_by_xpath('//iframe[1]')
browser.switch_to.frame(frame3)

现在您可以获得您正在寻找的节点:

browser.find_element_by_xpath("//div[contains(@id, 'in-game-stats')]")

关于python - Selenium、动态内容、chrome webdriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48402242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com