Python Selenium、动态内容、chrome webdriver
我想了解如何抓取一些动态网页, 但我无法让它工作 (我现在玩的网页是betfair.com,这是他们的现场投注 足球页面有一个动态比赛统计页面。要查看它的运行情况,请转到 betfair.com->赔率->现场博彩,点击任何足球比赛。) 它嵌入在两个iFrame中,我可以使用以下方式访问:Python Selenium、动态内容、chrome webdriver,python,selenium,selenium-webdriver,webdriver,Python,Selenium,Selenium Webdriver,Webdriver,我想了解如何抓取一些动态网页, 但我无法让它工作 (我现在玩的网页是betfair.com,这是他们的现场投注 足球页面有一个动态比赛统计页面。要查看它的运行情况,请转到 betfair.com->赔率->现场博彩,点击任何足球比赛。) 它嵌入在两个iFrame中,我可以使用以下方式访问: frame1 = browser.find_element_by_xpath('//iframe[contains(@class, "player")]') browser.switch_to.frame(f
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。另外,如果我使用chromedev工具尝试上面的手动步骤,它也可以工作。关于我为什么没有得到上述答案的任何线索?我是否需要等待一些东西才能使用?在您的
frame2
下有第三个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,这里我将把它作为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')]")
如果这没有帮助,试着发布你看到的错误,可能会有更多的帮助。现在,请尝试浏览器。切换到新窗口或框架后,请切换到.default\u content()
。谢谢!我怎么会错过呢?