能否用Python获取特定网站图表数据?以JEPX站点为例
使用Python获取网站图表数据的方案
一、通用可行性
当然可以用Python获取特定网站的图表数据,核心思路分两种场景:
- 如果图表数据是通过后端API接口直接返回(比如JSON格式),用
requests这类HTTP库直接请求接口就能拿到原始数据,效率最高; - 如果图表是前端通过JS动态渲染(数据嵌入在页面脚本或需加载后生成),可以用
selenium/playwright这类浏览器自动化工具模拟页面加载,再提取数据。
二、针对目标站点的具体实现
1. 用requests直接提取数据
该页面的图表数据通常嵌入在页面的JavaScript变量中,步骤如下:
- 发送GET请求获取页面源码:
import requests import re import json url = "https://www.jepx.jp/electricpower/market-data/spot/bid_curves.html" response = requests.get(url) response.encoding = "utf-8" html = response.text
- 用正则匹配页面中的数据变量(需根据页面实际JS结构调整正则):
pattern = re.compile(r'var\s+bidCurveData\s*=\s*(\{.*?\});', re.DOTALL) match = pattern.search(html) if match: data_json = json.loads(match.group(1)) print(data_json) # 此处即为图表原始数据
2. 用selenium提取数据
如果页面存在动态加载逻辑,用selenium模拟浏览器加载后提取:
from selenium import webdriver import json driver = webdriver.Chrome() driver.get("https://www.jepx.jp/electricpower/market-data/spot/bid_curves.html") # 等待页面加载完成,可根据实际情况调整等待逻辑 driver.implicitly_wait(10) # 执行JS获取页面中的数据变量 data = driver.execute_script("return bidCurveData;") print(json.dumps(data, indent=2)) driver.quit()
三、查找原始数据来源
你可以通过以下方式定位原始数据的来源:
- 打开目标页面按F12进入开发者工具,切换到Network标签;
- 刷新页面,筛选XHR/Fetch类型的请求,查看返回的JSON数据,找到与图表匹配的接口,该接口即为原始数据来源;
- 此外,该官方站点通常会提供数据下载入口(如CSV/Excel格式),可在页面导航栏或图表下方寻找「ダウンロード」(下载)按钮,直接获取结构化数据。
内容的提问来源于stack exchange,提问作者doubleH
相关产品推荐
相关产品推荐

