首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从python中的高图表中刮取数据?

如何从python中的高图表中刮取数据?
EN

Stack Overflow用户
提问于 2022-01-03 17:13:04
回答 1查看 142关注 0票数 0

我试图在python中为一个用来查找医学院统计数据的网站编写一个带有selenium的web刮刀。https://mec.aamc.org/msar-ui/#/medSchoolDetails/102提供了一个示例。我已经成功地抓取了大部分的数据,但是一些数据,比如“录取人口统计”(您应该可以在没有订阅的情况下查看的),是在高图表条形图中。事实证明,这是非常困难的,因为我以前只从静态网站上刮过数据。

我最初尝试通过CSS选择器查找每个栏上的文本,但每次访问站点时,选择器开头的几个字符都会更改,所以我不能这样做。我试着通过CSS选择器寻找一个元素,用通配符代替那些字母,但是我发现的每一件事的解释都太高了,我无法理解。我还试着搜索如何从一般的高级图表中抓取数据,但我还是不明白我读到了什么。

任何帮助,你们可以提供(或解释,如果这是不可能的),将非常感谢。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-03 19:34:05

因此,“最简单”的方法如下:

要素:

代码语言:javascript
复制
(//*[@class='highcharts-plot-background'])[1]

包含名为“高度”的属性。这个高度是310。这个元素的高度似乎代表Y轴0-100.所以310代表100。

然后是酒吧。这似乎有点复杂。除了颜色之外,我找不到任何唯一的标识符,颜色不是唯一的。

基本上,在标题记录下有一个有两个蓝色图表的图表。

所以你在寻找这样的东西:

代码语言:javascript
复制
(//*[@class='highcharts-plot-background'])[1]/..//*[@class='highcharts-point highcharts-color-0 ']

将有两个元素,所以先选择第一个,然后选择第二个

这是两个蓝色的酒吧在第一个。因此,您需要确定哪个是第一个,哪个是第二个。然后,您可以从每个属性中获得属性高度。

然后,通过将第二个高度除以第一个高度,就可以很容易地计算出这个值。在这个例子中,186除以310,总计0.6 - so 60。

希望能帮上忙!我让它这样运作:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70569247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档