Downloading PDFs with Python using Requests and BeautifulSoup
BeautifulSoup object is provided by Beautiful Soup which is a web scraping framework for Python. Web scraping is the process of extracting data from the website using automated tools to make the process faster. The BeautifulSoup object represents the parsed document as a whole. For most purposes, you can treat it as a Tag object.
Requests library is an integral part of Python for making HTTP requests to a specified URL. Whether it be REST APIs or Web Scraping, requests must be learned for proceeding further with these technologies. When one makes a request to a URI, it returns a response. Python requests provide inbuilt functionalities for managing both the request and response.
This article deals with downloading PDFs using BeautifulSoup and requests libraries in python. Beautifulsoup and requests are useful to extract the required information from the webpage.
Approach:
To find PDF and download it, we have to follow the following steps:
- Import beautifulsoup and requests library.
- Request the URL and get the response object.
- Find all the hyperlinks present on the webpage.
- Check for the PDF file link in those links.
- Get a PDF file using the response object.
Implementation:
Python3
import requests
from bs4 import BeautifulSoup
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser' )
links = soup.find_all( 'a' )
i = 0
for link in links:
if ( '.pdf' in link.get( 'href' , [])):
i + = 1
print ( "Downloading file: " , i)
response = requests.get(link.get( 'href' ))
pdf = open ( "pdf" + str (i) + ".pdf" , 'wb' )
pdf.write(response.content)
pdf.close()
print ( "File " , i, " downloaded" )
print ( "All PDF files downloaded" )
|
Output:
Downloading file: 1
File 1 downloaded
All PDF files downloaded
The above program downloads the PDF files from the provided URL with names pdf1, pdf2, pdf3 and so on respectively.
Last Updated :
06 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...