【发布时间】:2020-06-20 06:19:04
【问题描述】:
我正在尝试从 Highchart 中获取数据,但我只有一个“无”值。
图表需要密码才能访问,但我在this page上的图表有同样的问题。
使用浏览器的 DevTools,我可以从 highchart 中获取 y 值:
Highcharts.charts[0].series[0].data[0].y
因此,将这段代码与循环结构结合起来,我可以获得所有的 y 值。
问题是当我尝试使用 Selenium 对这些值进行网络抓取时。我正在使用下面的代码
page.execute_script('Highcharts.charts[0].series[0].data[0].y')
我期望的答案是 2(如在 DevTools 中),但我得到的是“无”作为答案。
我已经尝试使用 Beautifulsoup 从 <path> 标签中检索 y 值,但它不符合预期值。
HTML 源代码似乎很复杂(我不是这些领域的专家)。 <svg> 的完整 xpath 是:
/html/body/form/div[3]/div[2]/div[2]/section/div/div/div[2]/div/section/div/div/div/div[2]/div[2]/div[1]/div[2]/div/div/svg
另外,我找不到任何<iframe>,这可能会阻止我访问图表。
有谁知道我做错了什么? (我是这方面的初学者,所以如果需要任何进一步的信息,请告诉我)
【问题讨论】:
-
用相关的HTML、代码试验和错误堆栈跟踪(如果有的话)更新问题
-
我更新了一些信息。我没有任何错误,我只是无法获得正确的值。谢谢!!
-
嗨@fellipe sola,数据是异步加载的,所以也许你调用代码太早了?
-
嗨@user4157124 ..不幸的是它不能解决我的问题。显然数据来自一个js脚本,因此,要使用这种方法,我需要创建一个事件来加载这个脚本(这是我的猜测)。
标签: selenium-webdriver web-scraping highcharts