Cara Mengunduh File Dengan Python



Python menyediakan beberapa cara untuk mengunduh file dari internet. Ini dapat dilakukan melalui HTTP menggunakan urllib package atau requests library. Tutorial kali ini kita akan membahas cara menggunakan library ini untuk mengunduh file dari URL menggunakan Python.

REQUEST


Requests library adalah salah satu library paling populer di Python. Request memungkinkan Anda untuk mengirim permintaan HTTP / 1.1 tanpa perlu menambahkan string kueri ke URL Anda secara manual, atau form-encode  POST data Anda.

Baca Juga : Grab Twitter User Data Menggunakan Python


Dengan Requests library, Anda dapat melakukan banyak fungsi termasuk:

  • menambahkan form data
  • menambahkan multipart files
  • dan mengakses data respons Python

MEMBUAT REQUEST


Yang pertama harus Anda lakukan adalah menginstal library dan sesederhana:

1:  pip install requests  

Jika instalasi berhasil, tidak akan ada kesalahan.
HTTP Request meliputi:
  
  • GET
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • HEAD

 Membuat GET Request


Membuat request sangat mudah seperti digambarkan di bawah ini.

1:  import requests  
2:  req = requests.get(“https://www.google.com”)  

Perintah di atas akan mendapatkan halaman web google dan menyimpan informasi dalam variabel req. Kita kemudian bisa mendapatkan atribut lainnya juga.

Misalnya, untuk mengetahui apakah pengambilan halaman web google berhasil, kita akan menanyakan status_code.

1:  import requests  
2:  req = requests.get(“http://www.google.com")  
3:  req.status_code  
4:  200   
5:  # 200 means a successful request  


Bagaimana jika kita ingin mengetahui encoding type halaman web Google?

1:  req.encoding  
2:  ISO-8859–1  

Anda mungkin juga ingin tahu isi tanggapannya.

1:  req.text  

Ini hanya konten yang terpotong dari respons.

1:  '<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en  
2:  "><head><meta content="Search the world\'s information, including webpages, imag  
3:  es, videos and more. Google has many special features to help you find exactly w  
4:  hat you\'re looking for." name="description"><meta content="noodp" name="robots"  
5:  ><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta conten  
6:  t="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image  
7:  "><title>Google</title><script>(function(){window.google={kEI:\'_Oq7WZT-LIf28QWv  

Membuat POST Request


Secara sederhana, POST Request digunakan untuk membuat atau memperbarui data. Ini terutama digunakan dalam penyerahan formulir.

Mari kita asumsikan Anda memiliki formulir pendaftaran yang mengambil alamat email dan kata sandi sebagai data input, ketika Anda mengklik tombol kirim untuk pendaftaran, permintaan posting akan seperti yang ditunjukkan di bawah ini.

1:  data = {"email":"info@matapanda-crew.com",  
2:      "password":"12345")  
3:  req = requests.post(“http://www.google.com, params = data)  

Membuat PUT Request


PUT Request mirip dengan POST Request. Ini digunakan untuk memperbarui data. Misalnya, API di bawah ini menunjukkan cara melakukan permintaan PUT.

1:  data= {"name":"matapanda-crew",  
2:      "telephone":"12345")  
3:  r.put("http://www.contact.com, params= data")  

Membuat DELETE Request


DELETE Request, seperti namanya, digunakan untuk menghapus data. Di bawah ini adalah contoh DELETE Request

1:  data= {'name':'matapanda-crew'}  
2:  url = "https://www.contact.com/api/")  
3:  response = requests.delete(url, params= data)  

Urllib Package


urllib adalah package yang mengumpulkan beberapa modul untuk bekerja dengan URL yaitu:

  • urllib.request untuk membuka dan membaca URL.
  • urllib.error berisi pengecualian yang diajukan oleh urllib.request
  • urllib.parse untuk parsing URL.
  • urllib.robotparser untuk parsing file robots.txt.

urllib.request menawarkan interface yang sangat sederhana, dalam bentuk fungsi urlopen yang mampu mengambil URL menggunakan berbagai protokol yang berbeda. Ini juga menawarkan interface yang sedikit lebih kompleks untuk menangani otentikasi dasar, cookie, proksi, dan lainnya.

Cara Mengambil URL Dengan urllib


Cara paling sederhana untuk menggunakan urllib.request adalah sebagai berikut:

1:  import urllib.request  
2:  with urllib.request.urlopen('http://python.org/') as response:  
3:    html = response.read()  

Jika Anda ingin mengambil internet resource dan menyimpannya, Anda dapat melakukannya melalui fungsi urlretrieve ().

1:  import urllib.request  
2:  filename, headers = urllib.request.urlretrieve('http://python.org/')  
3:  html = open(filename)  

Mengunduh Gambar Dengan Python


Dalam contoh ini, kita akan mengunduh gambar yang tersedia di tautan ini menggunakan modul  llibrary request dan urllib.

Baca Juga : Cara Menggunakan IDM Lewat Termux


1:  url = 'https://www.python.org/static/opengraph-icon-200x200.png'  
2:  # downloading with urllib  
3:  # imported the urllib library  
4:  import urllib  
5:  # Copy a network object to a local file  
6:  urllib.urlretrieve(url, "python.png")  
7:  # downloading with requests  
8:  # import the requests library  
9:  import requests  
10:  # download the url contents in binary format  
11:  r = requests.get(url)  
12:  # open method to open a file on your system and write the contents  
13:  with open("python1.png", "wb") as code:  
14:    code.write(r.content)  

Unduh File PDF Dengan Python


Dalam contoh ini, kita akan mengunduh pdf tentang tren Google dari tautan ini.

1:  url = 'https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf'  
2:  # downloading with urllib  
3:  # import the urllib package  
4:  import urllib  
5:  # Copy a network object to a local file  
6:  urllib.urlretrieve(url, "tutorial.pdf")  
7:  # downloading with requests  
8:  # import the requests library  
9:  import requests  
10:  # download the file contents in binary format  
11:  r = requests.get(url)  
12:  # open method to open a file on your system and write the contents  
13:  with open("tutorial1.pdf", "wb") as code:  
14:    code.write(r.content)  

Unduh File Zip Dengan Python


Dalam contoh ini, kita akan mengunduh konten repositori GitHub yang ditemukan di tautan ini dan menyimpan file secara lokal.

1:  url = 'https://codeload.github.com/Dayat-eMJe/Template-Blogger-LK21/zip/master'  
2:  # downloading with requests  
3:  # import the requests library  
4:  import requests  
5:  # download the file contents in binary format  
6:  r = requests.get(url)  
7:  # open method to open a file on your system and write the contents  
8:  with open("minemaster1.zip", "wb") as code:  
9:    code.write(r.content)  
10:  # downloading with urllib  
11:  # import the urllib library  
12:  import urllib  
13:  # Copy a network object to a local file  
14:  urllib.urlretrieve(url, "minemaster.zip")  


Unduh Video Dengan Python


Dalam contoh ini, kami ingin mengunduh video ceramah yang tersedia di halaman ini

1:  url = 'https://www.youtube.com/watch?v=DTF04S85R0M'  
2:  video_name = url.split('/')[-1]  
3:  # using requests  
4:  # imported the requests library  
5:  import requests  
6:  print "Downloading file:%s" % video_name  
7:  # download the url contents in binary format  
8:  r = requests.get(url)  
9:  # open method to open a file on your system and write the contents  
10:  with open('tutorial.mp4', 'wb') as f:  
11:    f.write(r.content)  
12:  # using urllib  
13:  # imported the urllib library  
14:  import urllib  
15:  print "Downloading file:%s" % video_name  
16:  # Copy a network object to a local file  
17:  urllib.urlretrieve(url, "tutorial2.mp4")  

Kesimpulan


Tutorial ini telah membahas metode yang paling umum digunakan untuk mengunduh file dan juga format file yang paling umum. Meskipun Anda akan menulis lebih sedikit kode ketika menggunakan modul urllib, modul request lebih disukai karena kesederhanaannya, popularitasnya dan beragam fitur termasuk:

  • Keep-Alive & Connection Pooling
  • International Domains and URLs
  • Sessions with Cookie Persistence
  • Browser-style SSL Verification
  • Automatic Content Decoding
  • Basic/Digest Authentication
  • Elegant Key/Value Cookies
  • Automatic Decompression
  • Unicode Response Bodies
  • HTTP(S) Proxy Support
  • Multipart File Uploads
  • Streaming Downloads
  • Connection Timeouts
  • Chunked Requests
  • .netrc Support

Mungkin Itu saja yang bisa saya bagikan di tutorial kali ini, sampai berjumpa di tutorial selanjutnya.