如何使用Python爬取evemarketer历史数据并按时间列整理所有变量
实现方案
完整代码
import requests import pandas as pd # 配置请求头避免反爬拦截 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } url = "https://evemarketer.com/types/2410/history" # 发送请求获取数据 response = requests.get(url, headers=headers) response.raise_for_status() history_data = response.json() # 转换为按列存储的DataFrame df = pd.DataFrame(history_data) # 可选优化:格式化日期、调整列顺序 df["date"] = pd.to_datetime(df["date"]) df = df.reindex(columns=["date", "average", "highest", "lowest", "volume", "order_count"]) # 验证输出前5行 print(df.head()) # 导出到本地CSV文件 df.to_csv("2410_type_history.csv", index=False, encoding="utf-8-sig")
逻辑说明
- 新增请求头模拟浏览器访问,避免被网站反爬策略拦截
response.raise_for_status()用于请求异常时直接抛出报错,方便排查问题- 目标接口返回的JSON本身就是按天统计的结构化数组,直接传入
pd.DataFrame()即可自动将所有字段(时间、均价、最高价、最低价、交易量、订单量等)转换为单独列存储,完全匹配需求 - 可选操作支持将日期转为标准格式、自定义列顺序,方便后续做数据处理分析
- 最后导出的CSV文件即为按列组织的结构化数据,可直接用于后续项目使用
内容的提问来源于stack exchange,提问作者addDNA
相关产品推荐
相关产品推荐

