如何用Python从指定网站交互式图表提取数据并保存为DataFrame
从Gassco网站提取交互式图表数据并转为DataFrame
1. 定位数据接口
打开浏览器开发者工具(按F12),切换到「网络」标签页,刷新目标页面后筛选XHR/fetch类型请求,就能找到图表数据对应的API接口。该网站的这类数据一般来自https://umm.gassco.no/api/reductionFields接口。
2. 完善代码获取并转换数据
基于你已有的会话代码,直接请求数据接口,解析返回的JSON后转成DataFrame:
import requests import pandas as pd # 初始化会话并完成免责声明确认 s = requests.session() s.get("https://umm.gassco.no/reductionFields") s.get("https://umm.gassco.no/disclaimer/acceptDisclaimer?") # 请求数据接口 res = s.get("https://umm.gassco.no/api/reductionFields") raw_data = res.json() # 转换为DataFrame(根据实际JSON结构调整,假设核心数据在'data'字段下) df = pd.DataFrame(raw_data.get('data', [])) # 可选:如果数据嵌套层级深,用json_normalize扁平化 # df = pd.json_normalize(raw_data.get('data', [])) # 查看或保存数据 print(df.head()) df.to_csv('reduction_fields_data.csv', index=False)
3. 额外注意事项
- 如果接口需要特定参数(比如时间范围),从开发者工具的请求参数里复制对应的键值对,加到
get请求的params参数中即可,例如:params = {'startDate': '2023-01-01', 'endDate': '2023-12-31'} res = s.get("https://umm.gassco.no/api/reductionFields", params=params) - 若返回的JSON结构和预期不符,打印
raw_data查看具体结构,调整数据提取的字段路径。
内容的提问来源于stack exchange,提问作者FFV
相关产品推荐
相关产品推荐

