Descargar archivos PDF con Python usando Requests y BeautifulSoup

El objeto BeautifulSoup lo proporciona Beautiful Soup, que es un marco de web scraping para Python. El raspado web es el proceso de extracción de datos del sitio web utilizando herramientas automatizadas para acelerar el proceso. El objeto BeautifulSoup representa el documento analizado como un todo. Para la mayoría de los propósitos, puede tratarlo como un objeto Tag.

La biblioteca de requests es una parte integral de Python para realizar requests HTTP a una URL específica. Ya sea que se trate de API REST o Web Scrapping, las requests deben aprenderse para continuar con estas tecnologías. Cuando uno realiza una solicitud a un URI, devuelve una respuesta. Las requests de Pythonproporcionan funcionalidades integradas para administrar tanto la solicitud como la respuesta.

Este artículo trata sobre la descarga de archivos PDF usando BeautifulSoup y solicita bibliotecas en python. Beautifulsoup y las requests son útiles para extraer la información requerida de la página web.

Acercarse:

Para encontrar el PDF y descargarlo, tenemos que seguir los siguientes pasos:

  • Importe beautifulsoup y solicite la biblioteca.
  • Solicite la URL y obtenga el objeto de respuesta.
  • Encuentre todos los hipervínculos presentes en la página web.
  • Verifique el enlace del archivo PDF en esos enlaces.
  • Obtenga un archivo PDF utilizando el objeto de respuesta.

Implementación:

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")

Producción:

Downloading file:  1
File  1  downloaded
All PDF files downloaded

El programa anterior descarga los archivos PDF desde la URL proporcionada con los nombres pdf1, pdf2, pdf3, etc., respectivamente.

Publicación traducida automáticamente

Artículo escrito por hemavatisabu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *