python爬虫 巨潮资讯
时间: 2023-11-08 07:55:23 浏览: 117
Python巨潮网爬虫
python爬虫巨潮资讯是通过发送网络请求获取文件标识(announcementId),然后根据这个标识获取pdf文件的网址,并将pdf文件保存到指定文件夹中。具体步骤如下:
1. 首先,需要导入requests和time模块。
2. 定义请求数据的接口url,并设置请求参数param。同时,伪装User-Agent头部信息。
3. 发送POST请求获取数据列表response,并将返回的数据转换为JSON格式。
4. 遍历数据列表,获取每个公司的标识id,并保存到id_list数组中。
5. 定义获取详情数据的请求接口post_url。
6. 遍历id_list数组,依次获取每个公司的详情数据。
7. 定义请求头部信息hea,并获取当天时间。
8. 拼接请求参数data,并发送POST请求获取详细数据的JSON格式返回值last_list。
9. 从last_list中获取pdf文件的网址和文件标题,并打印出来。
10. 发送GET请求获取pdf文件内容,并将其保存到指定文件夹中。
以下是示例代码:
```python
import requests
import time
if __name__ == '__main__':
url = 'http://www.cninfo.com.cn/new/hisAnnouncement/query'
for pageNum in range(1, 3):
param = {
'pageNum': pageNum,
'pageSize': '30',
'column': 'szse',
'tabName': 'fulltext',
'plate': '',
'stock': '',
'searchkey': '',
'secid': '',
'category': '',
'trade': '',
'seDate': '2021-12-07~2022-06-07',
'sortName': '',
'sortType': '',
'isHLtitle': 'true',
}
head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
}
id_list = []
response = requests.post(url=url, headers=head, data=param)
data_list = response.json()
for dic in data_list['announcements']:
id_list.append(dic['announcementId'])
post_url = 'http://www.cninfo.com.cn/new/announcement/bulletin_detail'
for announcementId in id_list:
hea = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
}
t = time.localtime()
data = {
'announceId': announcementId,
'flag': 'true',
'announceTime': time.strftime("%Y-%m-%d", t),
}
last_list = requests.post(url=post_url, headers=hea, params=data).json()
print(last_list['fileUrl'])
print(last_list['announcement']['announcementTitle'])
responsepdf = requests.get(last_list['fileUrl'])
if responsepdf.status_code == 200:
with open(r".\save\%s.pdf" % last_list['announcement']['announcementTitle'], "wb") as code:
code.write(responsepdf.content)
```
阅读全文