一、经济学数据来源推荐
1. 宏观经济与全球数据
-
世界银行开放数据(World Bank Open Data)
-
数据内容:GDP、人口、贸易、贫困率等全球指标。
-
爬取方式:
-
直接下载 CSV/Excel 文件。
-
使用
wbdata
库调用 API:
-
python
import wbdata
# 查询中国和美国的GDP数据(NY.GDP.MKTP.CD为GDP指标代码)
data = wbdata.get_data(indicator="NY.GDP.MKTP.CD", country=["CHN", "USA"])
国际货币基金组织(IMF)
-
数据内容:汇率、财政政策、债务数据。
-
API 示例:
python
import requests
url = "https://www.imf.org/external/datamapper/api/v1/PCPI"
response = requests.get(url)
json_data = response.json() # 解析人均消费价格指数数据
2. 金融市场与公司数据
-
雅虎财经(Yahoo Finance)
-
数据内容:股票价格、财务报表、历史交易数据。
-
爬取工具 :使用
yfinance
库直接获取数据:
python
import yfinance as yf
# 获取苹果公司股票数据(2020-2023)
data = yf.download("AAPL", start="2020-01-01", end="2023-01-01")
data.to_csv("AAPL_stock.csv")
美国证券交易委员会(SEC EDGAR)
-
数据内容:上市公司财务报告(10-K、10-Q)。
-
爬取方法 :通过
sec-edgar-downloader
库批量下载:
3. 政府公开数据
-
中国国家统计局
-
数据内容:GDP、CPI、人口普查、行业统计。
-
爬取方式:手动下载 Excel 或调用网页接口(需解析动态请求)。
-
美国经济分析局(BEA)
-
数据内容:国民账户、国际贸易、区域经济数据。
4. 开放数据平台
-
Kaggle 经济数据集
-
网址:Find Open Datasets and Machine Learning Projects | Kaggle
-
示例数据集:全球通胀率、加密货币价格、经济政策不确定性指数。
-
-
Google 数据集搜索
-
搜索关键词:如 "income inequality"、"trade tariffs"。
5. 学术研究数据
-
美国国家经济研究局(NBER)
-
数据内容:劳动力市场、税收政策、经济周期数据。
-
哈佛 Dataverse
-
数据内容:经济学研究配套数据集(如论文复现数据)。
二、Python 爬取实战示例
案例 1:爬取世界银行 GDP 数据
python
import requests
import pandas as pd
# 通过API获取JSON数据
url = "http://api.worldbank.org/v2/country/CHN/indicator/NY.GDP.MKTP.CD?format=json"
response = requests.get(url)
data = response.json()
# 解析数据并转为DataFrame
gdp_data = []
for entry in data[1]:
gdp_data.append({
"year": entry["date"],
"gdp": entry["value"]
})
df = pd.DataFrame(gdp_data)
df.to_csv("china_gdp.csv", index=False)
案例 2:爬取中国统计局CPI数据(动态页面示例)
python
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
driver.get("http://data.stats.gov.cn/easyquery.htm?cn=A01")
# 模拟点击"居民消费价格指数(CPI)"
time.sleep(2)
driver.find_element(By.XPATH, '//a[contains(text(), "价格指数")]').click()
time.sleep(1)
driver.find_element(By.XPATH, '//a[contains(text(), "居民消费价格指数")]').click()
# 获取表格数据
table = driver.find_element(By.CLASS_NAME, "public_table")
rows = table.find_elements(By.TAG_NAME, "tr")
for row in rows:
print(row.text)
driver.quit()
三、注意事项
-
合法性
-
检查目标网站的
robots.txt
(如https://example.com/robots.txt
)。 -
避免爬取需登录或明确禁止爬取的数据。
-
-
反爬对策
- 设置合理的请求头(User-Agent、Referer):
python
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Referer": "https://example.com"
}
- 使用代理 IP 池(推荐付费服务如 BrightData、Oxylabs)。
-
数据处理
-
清洗数据:处理缺失值(
df.dropna()
)、去重(df.drop_duplicates()
)。 -
标准化格式:日期转换(
pd.to_datetime()
)、单位统一。
-
-
伦理与引用
-
引用数据来源(如注明数据来自世界银行或国家统计局)。
-
仅用于学术研究,禁止商业用途。
-
四、进阶工具推荐
-
Scrapy 框架:适合大规模数据抓取,支持异步和分布式爬取。
-
Apify:无代码爬虫平台,可抓取动态渲染页面(如含 JavaScript 的政府数据平台)。
-
Jupyter Notebook:交互式开发环境,便于调试和数据分析。
总结
经济学大数据的爬取应聚焦权威数据源(如世界银行、政府统计局),优先使用官方 API 或结构化数据下载。若需定制化爬虫,务必遵守法律与平台规则。爬取后结合 Pandas、NumPy 进行数据分析,或利用计量经济学库(如 statsmodels
)进行模型构建,这将为您的经济研究提供强大的数据支持。