Python 批量抓取股票财务数据并保存到CSV文件
以下是一个示例代码,可以实现批量抓取股票财务数据并保存到CSV文件的功能:
import requests
import csv
# 读取股票代码列表
with open('stocks.xlsx', 'r') as f:
stocks = [row[1] for row in csv.reader(f)][1:]
# 循环遍历股票代码,抓取财务数据并保存到csv文件
for stock in stocks:
url = 'http://stockpage.10jqka.com.cn/{}/finance/'.format(stock)
response = requests.get(url)
response.encoding = 'gbk'
html = response.text
# 解析财务数据
data_start = html.find('cwzbdata')
data_end = html.find('};', data_start)
data_str = html[data_start+9:data_end+1]
data = eval(data_str)
# 保存到csv文件
with open('{}.csv'.format(stock), 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['报告期', '净利润', '营业收入', '毛利率', '净利率'])
for row in data:
writer.writerow([row[0], row[2], row[3], row[8], row[9]])
这个代码会读取一个名为'stocks.xlsx'的Excel文件,其中股票代码在第二列,然后循环遍历每一个股票代码,抓取对应网页的财务数据,并将数据保存到一个以股票代码为文件名的CSV文件中。每个CSV文件包含报告期、净利润、营业收入、毛利率和净利率等数据。
需要注意的是,这个代码需要使用requests和csv模块,如果没有安装这些模块,需要先安装。
使用说明:
- 将股票代码列表写入到名为'stocks.xlsx'的Excel文件,代码放在第二列。
- 运行代码,程序会自动根据股票代码列表抓取数据并生成对应的CSV文件。
优化建议:
- 使用更专业的金融数据爬取库,如Tushare或AkShare,可以更方便地获取股票数据。
- 添加异常处理机制,防止程序因网络错误或数据格式错误而崩溃。
- 可以使用多线程或多进程来加速数据爬取过程。
- 使用pandas库对爬取到的数据进行处理和分析,可以生成更直观的图表和统计数据。
原文地址: https://www.cveoy.top/t/topic/mEAw 著作权归作者所有。请勿转载和采集!