This article discusses how to download a PDF using Python's requests
library.
Approach
- Import
requests
library - Request the URL and get the
response
object. - Get the PDF file using the
response
object, and returnTrue
. - If the PDF cannot be downloaded, return
False
Implementation
The following program downloads a PDF files from the provided URL.
#!/usr/bin/env python3
import os
import requests
def download_pdf_file(url: str) -> bool:
"""Download PDF from given URL to local directory.
:param url: The url of the PDF file to be downloaded
:return: True if PDF file was successfully downloaded, otherwise False.
"""
# Request URL and get response object
response = requests.get(url, stream=True)
# isolate PDF filename from URL
pdf_file_name = os.path.basename(url)
if response.status_code == 200:
# Save in current working directory
filepath = os.path.join(os.getcwd(), pdf_file_name)
with open(filepath, 'wb') as pdf_object:
pdf_object.write(response.content)
print(f'{pdf_file_name} was successfully saved!')
return True
else:
print(f'Uh oh! Could not download {pdf_file_name},')
print(f'HTTP response status code: {response.status_code}')
return False
if __name__ == '__main__':
# URL from which pdfs to be downloaded
URL = 'https://raw.githubusercontent.com/seraph776/DevCommunity/main/PDFDownloader/assests/the_raven.pdf'
download_pdf_file(URL)
Output
the_raven.pdf was successfully saved!
Conclusion
After reading this article you should now be able to download a PDF using Python's requests
library. Remember that some website might more difficult than others to get data from. If you are unable to download the PDF file, analyze the HTTP response status codes to help determine what wrong. Please leave a comment if you found this article helpful.
Code available at GitHub
Top comments (2)
from fpdf import FPDF
Initialize PDF
pdf = FPDF()
pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page()
pdf.set_font("Arial", size=12)
Title
pdf.set_font("Arial", style="B", size=14)
pdf.cell(200, 10, txt="Kisi-Kisi Soal Seni Budaya Kelas 10", ln=True, align="C")
pdf.ln(10)
Content
content = """
| No. Soal | Materi dan Penjelasan | Level Kognitif | Jenis Soal |
|----------|--------------------------------------------------------------------------------------|----------------|--------------------|
| 1 | Seni sebagai refleksi: Seni memberikan pengalaman estetis yang menggambarkan kehidupan. | Pengetahuan | Pilihan Ganda |
| 2 | Tokoh seni: Leonardo Da Vinci adalah pelukis terkenal yang menciptakan lukisan Mona Lisa. | Pengetahuan | Pilihan Ganda |
| 3 | Unsur seni rupa: Unsur seperti garis, warna, bentuk, dan tekstur adalah elemen dasar seni. | Pemahaman | Pilihan Ganda |
| 4 | Alat seni lukis: Palet, kuas, dan cat adalah alat yang digunakan dalam seni lukis. | Pengetahuan | Pilihan Ganda |
| 5 | Warna primer: Merah, kuning, dan biru adalah warna dasar yang tidak dapat dicampur. | Pengetahuan | Pilihan Ganda |
| 6 | Seni rupa kontemporer: Karya seni modern yang menggunakan ide dan teknik inovatif. | Pemahaman | Pilihan Ganda |
| 7 | Seni rupa modern: Mengutamakan kebebasan ekspresi dan ide-ide baru dalam seni. | Pemahaman | Pilihan Ganda |
| 8 | Seni rupa tradisional: Seni yang mengikuti pakem budaya dan diwariskan secara turun-temurun. | Pemahaman | Pilihan Ganda |
| 9 | Istilah pembuat kerajinan: Orang yang menciptakan kerajinan disebut perajin. | Pengetahuan | Pilihan Ganda |
| 10 | Seni rupa terapan: Seni yang dibuat dengan tujuan fungsional, seperti furnitur atau keramik. | Aplikasi | Pilihan Ganda |
| 11 | Seni rupa terapan (benda pakai): Contohnya adalah meja, kursi, atau alat makan. | Pengetahuan | Pilihan Ganda |
| 12 | Seni rupa terapan (benda hias): Contohnya adalah vas bunga, patung kecil, atau guci. | Pengetahuan | Pilihan Ganda |
| 13 | Seni rupa tradisional: Contoh seperti wayang, batik, atau seni ukir khas daerah. | Pengetahuan | Pilihan Ganda |
| 14 | Unsur seni rupa: Meliputi garis, bentuk, warna, tekstur, ruang, dan gelap-terang. | Pemahaman | Pilihan Ganda |
| 15 | Teori warna: Campuran warna kuning dan biru menghasilkan warna hijau. | Aplikasi | Pilihan Ganda |
| 16 | Tempat apresiasi seni: Galeri, museum, atau ruang publik adalah tempat untuk seni. | Pengetahuan | Pilihan Ganda |
| 17 | Prinsip seni rupa: Kesatuan, keseimbangan, irama, proporsi, dan harmoni dalam karya seni. | Pemahaman | Pilihan Ganda |
| 18 | Seni dua dimensi: Karya seni yang memiliki panjang dan lebar, seperti lukisan atau gambar. | Pengetahuan | Pilihan Ganda |
| 19 | Material seni rupa: Bahan alami seperti kayu, tanah liat, atau batu digunakan dalam seni. | Pengetahuan | Pilihan Ganda |
| 20 | Alat seni lukis: Kuas berbulu halus cocok untuk teknik cat minyak. | Pengetahuan | Pilihan Ganda |
"""
Add content to PDF
pdf.set_font("Arial", size=10)
for line in content.split("\n"):
pdf.multi_cell(0, 10, line)
Save PDF
output_path = "/mnt/data/Kisi-Kisi_Seni_Budaya_Kelas_10.pdf"
pdf.output(output_path)
output_path
njconsumeraffairs.gov/Actions/2024... this link is getting downloaded but the file size is 1kb and not able to open it . Please check it