python 自动下载A股上市公司2022年报
时间: 2023-10-08 15:14:18 浏览: 116
2022-2001年上市企业信息披露质量 - 信息透明度数据
你可以使用 Python 中的 requests 和 BeautifulSoup 库来自动化下载A股上市公司的2022年报。以下是基本步骤:
1. 首先你需要获取所有上市公司的股票代码,可以从东方财富网等财经网站获取,将其保存到一个 CSV 文件中。
2. 使用 Python 的 requests 库访问财报网站,例如巨潮资讯网(http://www.cninfo.com.cn/),并且搜索每个公司的年报。
3. 使用 BeautifulSoup 库解析网页内容,获取年报的下载链接。
4. 使用 requests 库下载年报并将其保存到本地文件夹中。
以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 获取股票代码列表
with open('stock_codes.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
stock_codes = [row[0] for row in reader]
# 创建文件夹保存年报
import os
if not os.path.exists('annual_reports'):
os.makedirs('annual_reports')
# 循环下载年报
for code in stock_codes:
url = f'http://www.cninfo.com.cn/new/disclosure/stocks?stockCode={code}&searchkey=&xxfcbj=&xxfcbj=&stime=&etime=&pageNo=1&pageSize=30&tabname=fulltext&sortName=pubdate&sortType=desc'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析搜索结果,获取年报下载链接
table = soup.find('table', {'class': 'disclosure-list'})
if not table:
continue
rows = table.find_all('tr')
for row in rows:
cols = row.find_all('td')
if len(cols) < 5:
continue
if cols[3].get_text() == '年报':
report_url = f"http://www.cninfo.com.cn/{cols[4].find('a')['href']}"
response = requests.get(report_url)
filename = f"{code}_annual_report.pdf"
with open(f"annual_reports/{filename}", 'wb') as f:
f.write(response.content)
print(f"Downloaded {filename}")
```
请注意,这只是一个示例代码,实际情况可能会因为网站更新而无法使用。另外,下载年报需要一定的时间和计算资源,需要谨慎使用。
阅读全文