python批量下载巨潮资讯网指定年份的年报代码
时间: 2023-06-26 14:09:20 浏览: 752
使用Python爬取巨潮资讯网中上市公司的年报,并进行文本分析代码
5星 · 资源好评率100%
可以使用 Python 中的 requests 和 BeautifulSoup 库来实现批量下载巨潮资讯网指定年份的年报代码。具体步骤如下:
1. 导入需要的库
```python
import os
import requests
from bs4 import BeautifulSoup
```
2. 定义需要爬取的 URL
```python
url = 'http://www.cninfo.com.cn/new/hisAnnouncement/query'
```
3. 构造请求参数
```python
params = {
'stock': '',
'searchkey': '',
'plate': '',
'category': 'category_ndbg_szsh;',
'pageNum': 1,
'pageSize': 30,
'tabName': 'fulltext',
'sortName': '',
'sortType': '',
'limit': '',
'showTitle': '',
'seDate': 'xxxx-01-01~xxxx-12-31', # 替换为需要爬取的年份
}
```
其中,`seDate` 参数指定需要爬取的年份。需要替换为你需要爬取的年份。
4. 发送请求并解析页面
```python
res = requests.get(url, params=params)
soup = BeautifulSoup(res.text, 'html.parser')
```
5. 获取总页数,并循环遍历每一页
```python
total_pages = int(soup.select_one('.total-pages').text)
for page in range(total_pages):
params['pageNum'] = page + 1
res = requests.get(url, params=params)
soup = BeautifulSoup(res.text, 'html.parser')
# 解析页面获取需要下载的文件 URL
```
6. 解析页面获取需要下载的文件 URL
```python
for tr in soup.select('.table-search-list tr'):
file_url = tr.select_one('.download-links a')['href']
file_name = tr.select_one('.download-links a')['download']
# 下载文件
```
7. 下载文件
```python
res = requests.get(file_url)
with open(file_name, 'wb') as f:
f.write(res.content)
```
完整代码如下:
```python
import os
import requests
from bs4 import BeautifulSoup
url = 'http://www.cninfo.com.cn/new/hisAnnouncement/query'
params = {
'stock': '',
'searchkey': '',
'plate': '',
'category': 'category_ndbg_szsh;',
'pageNum': 1,
'pageSize': 30,
'tabName': 'fulltext',
'sortName': '',
'sortType': '',
'limit': '',
'showTitle': '',
'seDate': 'xxxx-01-01~xxxx-12-31', # 替换为需要爬取的年份
}
res = requests.get(url, params=params)
soup = BeautifulSoup(res.text, 'html.parser')
total_pages = int(soup.select_one('.total-pages').text)
for page in range(total_pages):
params['pageNum'] = page + 1
res = requests.get(url, params=params)
soup = BeautifulSoup(res.text, 'html.parser')
for tr in soup.select('.table-search-list tr'):
file_url = tr.select_one('.download-links a')['href']
file_name = tr.select_one('.download-links a')['download']
file_name = os.path.join('annual_reports', file_name)
if not os.path.exists(file_name):
res = requests.get(file_url)
with open(file_name, 'wb') as f:
f.write(res.content)
```
需要注意的是,下载的文件保存在 `annual_reports` 文件夹下,如果该文件夹不存在需要先创建该文件夹。
阅读全文