📜  使用 Requests 和 BeautifulSoup 使用Python下载 PDF

📅  最后修改于: 2022-05-13 01:54:39.397000             🧑  作者: Mango

使用 Requests 和 BeautifulSoup 使用Python下载 PDF

BeautifulSoup对象由 Beautiful Soup 提供,它是Python的网络抓取框架。网络抓取是使用自动化工具从网站中提取数据的过程,以加快过程。 BeautifulSoup对象将解析后的文档表示为一个整体。大多数情况下,您可以将其视为 Tag 对象。

请求库是Python不可或缺的一部分,用于向指定的 URL 发出 HTTP 请求。无论是 REST API 还是 Web Scrapping,都必须了解请求才能进一步使用这些技术。当一个人向一个 URI 发出请求时,它会返回一个响应。 Python请求提供了用于管理请求和响应的内置功能。

本文涉及使用BeautifulSoup下载 PDF 并在Python中请求库。 Beautifulsoup和 requests 可用于从网页中提取所需的信息。

方法:

要找到PDF并下载它,我们必须按照以下步骤操作:

  • 导入beautifulsoup和 requests 库。
  • 请求 URL 并获取响应对象。
  • 找到网页上存在的所有超链接。
  • 检查这些链接中的 PDF 文件链接。
  • 使用响应对象获取 PDF 文件。

执行:

Python3
# Import libraries
import requests
from bs4 import BeautifulSoup
  
# URL from which pdfs to be downloaded
url = "https://www.geeksforgeeks.org/how-to-extract-pdf-tables-in-python/"
  
# Requests URL and get response object
response = requests.get(url)
  
# Parse text obtained
soup = BeautifulSoup(response.text, 'html.parser')
  
# Find all hyperlinks present on webpage
links = soup.find_all('a')
  
i = 0
  
# From all links check for pdf link and
# if present download file
for link in links:
    if ('.pdf' in link.get('href', [])):
        i += 1
        print("Downloading file: ", i)
  
        # Get response object for link
        response = requests.get(link.get('href'))
  
        # Write content in pdf file
        pdf = open("pdf"+str(i)+".pdf", 'wb')
        pdf.write(response.content)
        pdf.close()
        print("File ", i, " downloaded")
  
print("All PDF files downloaded")


输出:

Downloading file:  1
File  1  downloaded
All PDF files downloaded

上述程序从提供的 URL 下载 PDF 文件,名称分别为 pdf1、pdf2、pdf3 等。