使用python从多个Highcharts图表中抓取数据

v2g6jxz6  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(183)

我正在尝试使用python( selenium )将所有RSPO CREDITS highcharts 中的数据提取到一个带有图表名称、年份、月份和值的Pandasdataframe中(没有学分和价格(美元))上的https://rspo.org/palmtrace,并一直在寻找一些其他的职位,如thisthis这样做。然而,看起来这些图表的格式有点不同,所以对此的任何帮助都非常感谢。

czq61nw1

czq61nw11#

考虑到您的站点有两个22系列图表和两个16系列图表,粗略的解决方案是:

from selenium import webdriver
import time
import pandas as pd

driver = webdriver.Chrome()

website = "https://rspo.org/palmtrace"

driver.get(website)
time.sleep(2)

my_data = []

for chart in range(2):
    for series in range(22):
        temp = driver.execute_script('return window.Highcharts.charts[{}]'
                                '.series[{}].options.data'.format(chart,series))
        temp.insert(0, driver.execute_script('return window.Highcharts.charts[{}]'
                                '.series[{}].options.name'.format(chart,series)))
        my_data.append(temp)

for chart in range(2,4):
    for series in range(16):
        temp = driver.execute_script('return window.Highcharts.charts[{}]'
                                '.series[{}].options.data'.format(chart,series))
        temp.insert(0, driver.execute_script('return window.Highcharts.charts[{}]'
                                '.series[{}].options.name'.format(chart,series)))
        my_data.append(temp)

df = pd.DataFrame(my_data)
print(df)

相关问题