3 Cara Download File Dengan Python

November 15, 2019


Download atau unduh (dalam bahasa indonesia) merupakan suatu aktivitas bisa dikatakan juga proses transfer atau perpindahan suatu berkas. Lawan dari download adalah upload atau unggah (dalam bahasa indonesia). Secara teknis baik download dan upload merupakan suatu proses yang sama. Bedanya, jika download merupakan perpindahan berkas dari server ke client maka upload sebaliknya.


Lebih jelasnya proses download akan dimulai ketika pc client atau user mulai meminta (request) sebuah berkas dari pc lain (misalnya server) dan berkas yang diminta tadi berhasil diterima.


Fitur download ini cukup mudah dibuat, pada artikel ini kita akan coba membuat fitur download pada bahasa pemrograman python melalui 3 cara antara lain dengan menggunakan modul request, urllib3, dan wget.


Download File Pada Python


Download File Menggunakan Requests

Requests merupakan library standar yang digunakan untuk membuat berbagai macam request atau permintaan HTTP di python. Selain itu, requests mengklaim dirinya merupakan satu-satunya pustaka HTTP Non-GMO (Genetically Modified Organism) python yang aman untuk digunakan.


Fitur yang dimiliki requests antara lain, mendukung akses internasional domains and URLs, mendukung .netrc, HTTP(S) Proxy, Connection Timeouts, Streaming Download, dan masih banyak lagi.


Secara resmi modul requests dapat dipasang dan didukung pada python versi 2.7, python 3.4-3.7 dan berjalan baik di PyPy.


pip3 install requests
import requests
print('Proses Download sedang dimulai, silahkan ditunggu... :)')
url = 'https://kopiding.in/wp-content/uploads/logo-blog.png'
filedata = requests.get(url)
with open('../Pictures/download/logo.png', 'wb') as f:
    f.write(filedata.content)
print('File berhasil didownload! Silahkan periksa direktori Pictures/download/')

Kode di atas ketika dieksekusi akan mendapatkan file yang berasal dari alamat yang tersimpan di variabel url. Kemudian file yang berhasil didapatkan tadi akan ditulis ulang namanya dan disimpan pada path yang sudah ditentukan (Pictures/download/) menggunakan fungsi open() dengan mode write binary (‘wb’).



Download file menggunakan urllib3

Modul berikutnya yang dapat digunakan mendownload file di python adalah urllib3, urllib3 merupakan modul untuk HTTP client yang aman dan ramah, sehingga banyak ekosistem yang berbasis python mulai menggunakan modul yang satu ini.


urllib3 memiliki bermacam fitur yang tak kalah menarik seperti thread yang aman, Connection pooling, Verifikasi SSL / TLS sisi klien, dukungan untuk gzip dan defoding encoding, dukungan proxy untuk HTTP dan SOCKS, dan lain-lain.


pip3 install urllib3
import urllib3
http = urllib3.PoolManager()
filedata = http.request('GET', 'https://kopiding.in/wp-content/uploads/logo-blog.png', preload_content=False)
datatowrite = filedata.read()
with open('../Pictures/download/logo2.png', 'wb') as f:
f.write(datatowrite)
print('File berhasil didownload! Silahkan periksa direktori Pictures/download/')

Download file menggunakan wget

Terakhir untuk mendownload file melalui python dapat dengan menggunakan wget. GNU Wget atau biasa dipanggil wget saja adalah sebuah program komputer sederhana yang mengambil materi dari web server, dan merupakan bagian dari Proyek GNU. Namanya berasal dari World Wide Web dan get. Program ini mendukung pengunduhan melalui protokol HTTP, HTTPS, dan FTP.


pip3 install wget
import wget
print('Beginning file download with wget module')
wget.download('https://kopiding.in/wp-content/uploads/logo-blog.png', '../Pictures/download/logo3.png')
print('File berhasil didownload! Silahkan periksa direktori Pictures/download/')

Kategori