当前位置: 首页 > 面试题库 >

将SVG从Highcharts数据转换为数据点

陶飞英
2023-03-14
问题内容

我希望从该网站的mma 数据中抓取数据并解析一些highcharts表。我单击的链接与selenium,然后切换到图表。我转到该站点,然后在Artem
Lobov行的Pinnacle列中单击+420。这将创建一个弹出图表。然后,我切换到活动元素。我想捕获由highcharts绘制的图形以响应点击。

我以以下方式使用selenium:

actions = ActionChains(driver)
actions.move_to_element(driver.find_element_by_id(pin_id))
actions.click()
actions.perform()
time.sleep(3)
driver.switch_to_active_element()

我能够单击链接并获得图表,但我对highcharts的工作方式有些迷茫。
我试图解析highcharts系列组在这里
,并在图表中获取值。

我相信可以通过以下方式找到数据:

soup = bs4.BeautifulSoup(open(driver.page_source), "lxml")
data = soup.find_all('g', {"class":"highcharts-series-group"})[-1].find_all("path")

但是,这提供了以下内容,并且不清楚如何从数据创建图表。如评论中所述,它似乎是svg。

在检查过程中,数据似乎在其中 <g class="highcharts-series"<g class="highcharts-series- tracker但不清楚,高图表根据该数据将其绘制成图形。

高图如何显示已保存数据中的图形?有没有一种干净的方法可以从显示的highcharts-series-group中获取数据?


问题答案:

我不知道如何将SVG数据转换为您提到的图形上显示的内容,但是编写了以下Selenium Python脚本:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.bestfightodds.com/events/ufc-fight-night-108-swanson-vs-lobov-1258')
actions = webdriver.ActionChains(driver)
actions.move_to_element(driver.find_element_by_id('oID1013467091'))
actions.click()
actions.perform()
time.sleep(3)
driver.switch_to_active_element()
chart_number = driver.find_element_by_id('chart-area').get_attribute('data-highcharts-chart')
chart_data = driver.execute_script('return Highcharts.charts[' + chart_number + '].series[0].options.data')
for point in chart_data:
    e = driver.execute_script('return oneDecToML('+ str(point.get('y')) + ')')
    print(point.get('x'), e)

在这里,我们使用了Highcharts API和页面源代码中的一些js,它将此图表的服务器响应转换为我们在图表上看到的内容。



 类似资料:
  • 问题内容: 有什么简单的方法可以将数据库从mysql更改为mongoDB? 或更好的一个建议我好的教程做到这一点 问题答案: 有什么简单的方法可以将数据库从mysql更改为mongoDB? 方法#1 :以CSV格式从MySQL导出,然后使用mongoimport工具。但是,这在处理二进制数据的日期方面并不总是很好。 方法2 :使用您选择的语言编写传输脚本。基本上,您编写了一个程序,一次从MySQL

  • 问题内容: 我正在尝试将HTML表中存在的数据转换为JSON,以便可以在服务器端进行相应的处理。我可以序列化数据,但是结果充其量只能生成不直接链接的独特数据数组。像:这是我正在使用的形式: 序列化数据的脚本是: 经过数页StackOverFlow之后,我得到了serializeFormJSON(): 通过使用所有这些,我可以得到像这样的JSON: 我尝试了多种方法以名称-性别格式获取它们,但是每种

  • 2.Select query返回具有正确结构的JSON以转换为pojo 在mysql shell上执行查询将返回预期的JSON: 在camel中运行查询时,我遇到了一个问题,对此我无法找到解释或解决方案。 null 提前致谢

  • 问题内容: 是否有任何jQuery或javascript库根据给定的json数据生成动态表?我不想定义列,该库应该读取json哈希中的键并生成列。 当然,我可以自己遍历json数据并生成html表。我只想知道是否存在可以简单重用的此类库。 问题答案: 感谢大家的答复,这使用jQuery。 程式码片段:

  • 问题内容: 我有一个要转换为json格式的数据框: 我的数据帧称为res1: 当我做: 我得到这个: 我需要这个json输出像这样,有什么想法吗? 问题答案: 怎么样 通过使用,我们实际上将大的data.frame分解为每一行的单独的data.frame。通过从结果列表中删除名称,该函数将结果包装在数组中,而不是命名对象中。

  • 我有一个文件包。crd。伊滕是这样的 我需要将其导入到以下格式的excel文件中。 我试过这个代码,但不起作用 请帮忙