无法从React.js公司数据网格

2024-03-29 11:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从纽交所的网站上搜刮股票价格。例如,在page for IBM上,我想从报价数据网格中刮取与最后价格相对应的字段。我相信这个网格是用react.js公司. 通过浏览器中的开发工具,我可以找到所需的数据:

<span class="rtq-d big" domid="LastPrice">148.95</span> 

因此,在页面完全加载的情况下,应该可以使用domid="LastPrice"搜索范围。但我似乎无法通过编程来加载网格。朴素的scraper在这个任务上失败并不特别令人惊讶,但是我在使用phintomjs和通过selenium使用Firefox时也遇到了困难。例如,下面的代码表明,虽然可以在网格之外找到DOM元素,但是在网格中找不到所需的<span>。奇怪的是,我实际上可以在firefox窗口(由selenium打开)中看到加载的网格,但是即使在加载之后,它似乎也无法通过编程访问。在

^{pr2}$

我是否缺少了某种咒语,可以使selenium驱动程序与页面上实际加载的内容同步?或者,我是否需要从驱动程序运行一些javascript来确保页面被正确加载?在


Tags: 数据网格for网站selenium编程驱动程序page
1条回答
网友
1楼 · 发布于 2024-03-29 11:25:09

所需的span元素位于iframe中,这意味着无法直接找到span元素。要访问它,必须首先将webdriver对象定向到iframe:

iframes = driver.find_elements_by_xpath("//div[@class='panel-body']//iframe")
len(iframes)  # 5
driver.switch_to.frame(iframes[0])
driver.find_element_by_xpath('//span[@domid="LastPrice"]')  # should work now

相关问题 更多 >