代码样例
import os
import requests
from bs4 import BeautifulSoup
# 设置要下载PDF的网页URL(这里应该是一个包含PDF链接的页面)
# 注意:这个URL应该是一个您已知包含多个PDF下载链接的页面
url = 'https://governmentattic.org/DocumentsDoD.html'
# 创建一个目录来保存下载的PDF文件(如果目录不存在)
save_dir = 'downloaded_pdfs'
os.makedirs(save_dir, exist_ok=True)
# 发送HTTP请求获取网页内容
response = requests.get(url)
response.raise_for_status() # 如果请求失败,将抛出HTTPError异常
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
print(soup, 'soup')
# 查找所有的PDF链接(这里假设链接是以.pdf结尾的)
pdf_links = [a['href'] for a in soup.find_all(
'a', href=lambda href: href and href.endswith('.pdf'))]
# 下载每个PDF文件
for pdf_link in pdf_links:
# 获取PDF文件的名称(从链接中提取)
pdf_name = os.path.basename(pdf_link)
# 设置保存PDF文件的完整路径
save_path = os.path.join(save_dir, pdf_name)
# 如果文件已经存在,则跳过下载
if os.path.exists(save_path):
print(f"Skipping already downloaded file: {pdf_name}")
continue
# 发送HTTP请求下载PDF文件
pdf_response = requests.get(pdf_link)
pdf_response.raise_for_status() # 如果请求失败,将抛出HTTPError异常
# 将PDF文件内容写入到本地文件
with open(save_path, 'wb') as f:
f.write(pdf_response.content)
print(f"Downloaded: {pdf_name}")
print("All PDF files have been downloaded.")