请用Python语言写一个巨潮资讯网批量下载PDF的程序
时间: 2023-09-26 09:07:04 浏览: 85
### 回答1:
下面是一个使用 Python 的简单程序,可以批量下载巨潮资讯网上的 PDF 文件:
```
import requests
import os
# 巨潮资讯网 PDF 文件的 URL 前缀
url_prefix = 'http://www.cninfo.com.cn'
# PDF 文件的 URL 列表
pdf_urls = [
'...',
'...',
'...',
]
# 创建一个文件夹,用于保存 PDF 文件
if not os.path.exists('pdfs'):
os.mkdir('pdfs')
# 遍历每个 PDF 文件的 URL
for pdf_url in pdf_urls:
pdf_data = requests.get(url_prefix + pdf_url).content
pdf_path = os.path.join('pdfs', pdf_url.split('/')[-1])
with open(pdf_path, 'wb') as f:
f.write(pdf_data)
```
这个程序需要安装 `requests` 库,可以使用 `pip install requests` 命令进行安装。请注意,下载大量文件可能会对网站造成压力,并且有可能违反网站的使用规则,请谨慎使用。
### 回答2:
巨潮资讯网是一个提供各类金融和财务信息的网站,用户可以通过该网站下载PDF格式的文件。如果需要批量下载PDF文件,可以使用Python语言编写一个程序来实现。
下面是一个示例程序的逻辑:
1. 安装必要的Python库,如requests和beautifulsoup4,用于发送请求和解析HTML页面。
2. 导入所需的库和模块。
```python
import requests
from bs4 import BeautifulSoup
```
3. 设置基本请求和网址信息。
```python
base_url = 'http://www.cninfo.com.cn'
search_url = '/new/fulltextSearch?notautosubmit=&keyWord='
```
4. 编写函数来获取搜索结果页面中的PDF下载链接。
```python
def get_pdf_links(keyword):
search_url = base_url + search_url + keyword
response = requests.get(search_url)
soup = BeautifulSoup(response.text, 'html.parser')
pdf_links = []
# 查找所有包含PDF链接的元素
for link in soup.find_all('a'):
if link.get('href') and link.get('href').endswith('.pdf'):
pdf_links.append(link.get('href'))
return pdf_links
```
5. 编写函数来下载PDF文件。
```python
def download_pdf(url, save_path):
response = requests.get(url)
with open(save_path, 'wb') as file:
file.write(response.content)
```
6. 编写主程序来批量下载PDF文件。
```python
keyword = input('请输入搜索关键词:')
pdf_links = get_pdf_links(keyword)
for index, link in enumerate(pdf_links):
save_path = f'pdf{index+1}.pdf'
download_pdf(base_url + link, save_path)
print(f'{save_path} 下载完成!')
```
以上是一个简单的Python程序,它使用了requests库发送HTTP请求,使用beautifulsoup4库解析HTML页面,以及使用基本的逻辑来提取和下载PDF文件。
请注意,该程序可能需要根据巨潮资讯网的具体网页结构进行调整,以确保其正常工作。此外,为了节约时间和带宽,你也可以在程序中添加一些检查和筛选条件,以仅下载你感兴趣的PDF文件。
### 回答3:
巨潮资讯网是一个提供上市公司信息的网站,其中的PDF文件包含了各种公司的财务报表、公告等重要资料。我们可以使用Python编写一个程序来实现批量下载巨潮资讯网上的PDF文件。
首先,我们需要使用`requests`库来发送HTTP请求,并使用`re`库来进行正则表达式匹配。
```python
import requests
import re
```
然后,我们需要定义一个函数来下载PDF文件。这个函数将接收一个URL作为参数,并从该URL获取PDF文件的二进制数据,然后将数据保存到本地文件。
```python
def download_pdf(url):
response = requests.get(url)
if response.status_code == 200:
filename = re.findall(r'filename=(.+)', response.headers['Content-Disposition'])[0]
with open(filename, 'wb') as f:
f.write(response.content)
print(f"已下载文件:{filename}")
else:
print(f"下载失败:{response.status_code}")
```
接下来,我们需要获取巨潮资讯网上的PDF文件的URL。我们可以使用`requests`库发送一个GET请求到巨潮资讯网的搜索页面,并使用正则表达式从返回的HTML中提取PDF文件的URL。
```python
def get_pdf_urls(keyword):
url = f'http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey={keyword}&sdate=&edate=&isfulltext=false&sortName=date&sortType=desc&pageNum=1'
response = requests.get(url)
if response.status_code == 200:
pdf_urls = re.findall(r'<a\s+href="(/disk/(.+?\.PDF))".*?>', response.text)
return pdf_urls
else:
print(f"获取URL失败:{response.status_code}")
return []
```
最后,我们可以编写一个主函数来控制整个下载过程。该函数将接收一个关键字作为参数,然后获取包含该关键字的PDF文件的URL,并使用`download_pdf`函数来下载这些文件。
```python
def main(keyword):
pdf_urls = get_pdf_urls(keyword)
for url, _ in pdf_urls:
download_pdf(f'http://www.cninfo.com.cn{url}')
```
我们可以通过调用`main`函数并传入关键字来运行程序。
```python
if __name__ == '__main__':
keyword = input('请输入关键字:')
main(keyword)
```
请注意,为了运行这个程序,你需要在安装Python的基础上安装`requests`库和`re`库。可以使用以下命令来安装这些库:
```
pip install requests
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)