使用 Python、Requests 和 BeautifulSoup 下载 PDF 文件


Requests 和 BeautifulSoup 是 Python 库,可以下载任何在线文件或 PDF。Request 库用于发送 HTTP 请求并接收响应。BeautifulSoup 库用于解析响应中接收到的 HTML 并获取可下载的 PDF 链接。在本文中,我们将了解如何使用 Python 中的 Request 和 Beautiful Soup 下载 PDF 文件。

安装依赖项

在 Python 中使用 BeautifulSoup 和 Request 库之前,我们需要使用 pip 命令在我们的系统中安装这些库。要安装 Request 和 BeautifulSoup 库,请在您的终端中运行以下命令。

pip install requests
pip install beautifulsoup4

使用 Request 和 Beautiful Soup 下载 PDF 文件

要从互联网下载 PDF 文件,您需要首先使用 Request 库找到 PDF 文件的 URL。然后,我们可以使用 Beautiful Soup 解析 HTML 响应并提取 PDF 文件的链接。解析后接收到的基本 URL 和 PDF 链接然后组合在一起以获取 PDF 文件的 URL。现在,我们可以使用 Request 方法并发送 Get 请求来下载文件。

示例

在下面的代码中,将包含 PDF 文件 URL 的页面的有效 URL 放置在“https://example.com/document.pdf”的位置。

import requests
from bs4 import BeautifulSoup

# Step 1: Fetch the PDF URL
url = 'https://example.com/document.pdf'
response = requests.get(url)

if response.status_code == 200:
   # Step 2: Parse the HTML to get the PDF link
   soup = BeautifulSoup(response.text, 'html.parser')
   link = soup.find('a')['href']

   # Step 3: Download the PDF
   pdf_url = url + link
   pdf_response = requests.get(pdf_url)

   if pdf_response.status_code == 200:
      with open('document.pdf', 'wb') as f:
         f.write(pdf_response.content)
      print('PDF downloaded successfully.')
   else:
      print('Error:', pdf_response.status_code)
else:
   print('Error:', response.status_code)

输出

PDF downloaded successfully.

结论

在本文中,我们讨论了如何使用 Python 中的 Request 和 Beautiful Soup 库从互联网下载 PDF 文件。使用 Request 方法,我们可以发送 HTTP 请求来验证 PDF 链接。一旦找到包含 PDF 文件链接的页面,我们就可以使用 Beautiful Soup 解析页面并获取 PDF 可下载链接。

更新于: 2023年7月10日

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告