python爬取巨潮资讯网所有股票年报数据

用自然语言处理做金融领域的大模型,数据是第一要素。

这里我们介绍用python爬取巨潮资讯网所有股票的年度报告数据

巨潮资讯网的网址:巨潮资讯网官网

首先分析下巨潮资讯网的网页结构,在谷歌浏览器打开巨潮资讯网官网,右键,然后选择检查

巨潮资讯网的主要按钮是这个查询 的按钮,我们可以在代码、标题关键字等方面输入我们需要查询的数据,点击查询 按钮提交之后发现在Network 里面出现一个query的请求。

在这里插入图片描述
1.复制头文件:选择Network, 点击刚刚的query,选择Headers,复制User-Agent字段,这个可以让我们的代码模拟浏览器向巨潮资讯网的服务器。

“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36”,

在这里插入图片描述
2.分析请求的参数数据:
点击这个Payload获取我们请求的参数,主要的参数如下所示

“pageNum”: “1”, # 第几页
“pageSize”: “30”, # 只能固定30
“column”: “szse”, #
“tabName”: “fulltext”, # 公告fulltext, 调研relation, 持续督导supervise
“plate”: “shkcp”, # 板块:深圳主板szmb, 创业板szcy, 沪主板shmb, 上海科创板shkcp
“stock”: “”, # 股票代码
“searchkey”: “”, # 标题关键字
“secid”: “”,
“category”: “category_ndbg_szsh”, # 选择分类:年报、三季报等
“trade”: “”, # 行业
“seDate”: “2023-11-30~2024-05-30”,
“sortName”: “code”, # 排序id
“sortType”: “desc”, # 排序方式 asc, desc
“isHLtitle”: “true”

在这里插入图片描述
把参数拼接到url里获得的url:

http://www.cninfo.com.cn/new/hisAnnouncement/query?pageNum=1&pageSize=30&column=szse&tabName=fulltext&plate=&stock=605358,9900038308&searchkey=年度报告&secid=&category=category_ndbg_szsh&trade=&seDate=2021-11-26~2024-11-25&sortName=code&sortType=asc&isHLtitle=true&

用post方式请求数据:

response = requests.post(url_code, headers=headers).json()

发现可以获取数据,也就是基本成功了。
返回的数据:

{‘classifiedAnnouncements’: None, ‘totalSecurities’: 0, ‘totalAnnouncement’: 6, ‘totalRecordNum’: 6, ‘announcements’: [{‘id’: None, ‘secCode’: ‘605358’, ‘secName’: ‘立昂微’, ‘orgId’: ‘9900038308’, ‘announcementId’: ‘1216518080’, ‘announcementTitle’: ‘立昂微2022年年度报告摘要’, ‘announcementTime’: 1682092800000, ‘adjunctUrl’: ‘finalpage/2023-04-

### 获取巨潮资讯网基金年报数据 为了实现从巨潮资讯网爬取所有基金年报数据的目标,可以借鉴已有的方法并做适当调整。具体过程涉及多个步骤,包括准备环境、构建请求URL、处理响应以及保存数据。 #### 准备工作 确保安装必要的库来支持HTTP请求和JSON解析等功能。通常情况下,`requests`用于发起网络请求,而`pandas`可以帮助管理最终收集到的信息表单。 ```bash pip install requests pandas ``` #### 构建查询接口 根据提供的参考资料[^3],访问巨潮资讯网的公告查询页面时可以通过指定参数如`stock`(股票代码),`searchkey`=年度报告等条件筛选所需记录。对于基金产品而言,则需关注其特有的编码规则或分类标签以便精确匹配目标文档集合。 #### 发送请求与接收返回值 使用`requests.get()`函数向服务器发送GET请求,并传递精心设计好的参数字典作为查询条件的一部分。注意设置合理的headers模拟浏览器行为以提高成功率。 ```python import json from urllib.parse import urlencode url = 'http://www.cninfo.com.cn/new/hisAnnouncement/query' params = { "pageNum": 1, "pageSize": 30, "column": "szse", "tabName": "fulltext", "plate": "", "stock": "", # 基金代码应填在此处 "searchkey": "年度报告", "secid": "", "category": "category_ndbg_szsh", "trade": "", "seDate": "2021-11-26~2024-11-25", "sortName": "code", "sortType": "asc", "isHLtitle": True } response = session.get(url=url,params=params).json() print(json.dumps(response['announcements'], ensure_ascii=False)) ``` 上述代码片段展示了如何构造一个针对特定时间段内发布的基金年报信息的API调用。需要注意的是实际应用中可能还需要考虑分页加载更多结果的情况。 #### 数据存储 一旦成功获取到了包含年报详情链接在内的结构化数据之后,就可以进一步编写逻辑去批量下载这些PDF文件至本地磁盘;同时也可以尝试利用第三方工具比如PyMuPDF来进行内容抽取操作,从而完成整个流程闭环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏格拉没有底w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值