我正在尝试从Highchart获取数据,但是我只有一个“ None”值。
该图表需要访问密码,但是我对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>
,这可能避免了我访问图形。
有人知道我在做什么错吗? (我是该领域的初学者,所以请告知是否需要其他信息)
答案 0 :(得分:2)
长时间停留后,我想出了解决该问题的方法。
我的错误是我正在通过硒将要执行的以下js脚本发送到浏览器。
page.execute_script('Highcharts.charts[0].series[0].data[0].y')
此代码运行正常,但没有任何价值。因此,为了具有y值(这是我需要的),我只需要在先前的代码中使用“返回”即可。最终的代码是
page.execute_script('return Highcharts.charts[0].series[0].data[0].y')