Python Akses Internet menggunakan Urllib.Request dan urlopen()
โก Ringkasan Cerdas
urllib adalah standar Python Modul untuk mengakses data internet, memungkinkan program untuk dibuka. URLFungsi urllib.request.urlopen() terhubung ke alamat web dan membaca respons server langsung ke dalam URL. Python.

Bagian di bawah ini menjelaskan apa itu urllib, dan bagaimana cara membukanya. URL dan membaca HTML-nya, serta cara menangani kesalahan, mengunduh file, dan memilih antara urllib dan pustaka requests.
Apa itu urllib?
urllib adalah a Python modul yang dapat digunakan untuk membuka URLIni mendefinisikan fungsi dan kelas untuk membantu dalam URL tindakan.
Dengan PythonAnda juga dapat mengakses dan mengambil data dari internet, seperti XML, HTML, dan JSON, lalu mengolah data tersebut secara langsung. Pada bagian di bawah ini, kita akan melihat cara mengambil data dari web. Misalnya, di sini kita menggunakan sebuah Guruvideo 99 URL, akseslah dengan menggunakan Python, dan cetak file HTML ini URL.
Paket urllib mengelompokkan beberapa modul: urllib.request untuk membuka URLs, urllib.error untuk pengecualian yang dapat ditimbulkan oleh permintaan, urllib.parse untuk membangun dan mengurai URLs, dan urllib.robotparser untuk membaca file robots.txt.
Bagaimana cara membuka URL menggunakan Urllib
Sebelum menjalankan kode untuk terhubung ke data internet, kita perlu mengimpornya terlebih dahulu. URL modul pustaka, atau โurllibโ.
- Impor urllib
- Tentukan fungsi utama Anda
- Deklarasikan variabel webUrl
- Kemudian panggil fungsi urlopen pada pustaka urllib.
- The URL Kami akan membuka... Guru99 tutorial tentang YouTube
- Selanjutnya, kita mencetak kode hasilnya.
- Kode hasil diperoleh dengan memanggil fungsi getcode pada variabel webUrl yang telah kita buat.
- Kita mengubahnya menjadi string, sehingga dapat digabungkan dengan string "kode hasil" kita.
- Ini akan berupa kode HTTP biasa "200", yang menunjukkan bahwa permintaan HTTP telah diproses dengan sukses.
Cara Mendapatkan File HTML dari URL in Python
Anda juga dapat membaca file HTML dengan menggunakan fungsi read() di PythonSaat Anda menjalankan kode tersebut, file HTML akan muncul di konsol.
- Panggil fungsi read() pada variabel webUrl.
- Metode read() memungkinkan Anda untuk membaca isi file data.
- Bacalah seluruh isi URL ke dalam variabel bernama data
- Jalankan kode tersebut dan data akan dicetak dalam format HTML.
Berikut kode lengkapnya:
Python 2 Contoh
# # read the data from the URL and print it # import urllib2 def main(): # open a connection to a URL using urllib2 webUrl = urllib2.urlopen("https://www.youtube.com/user/guru99com") #get the result code and print it print "result code: " + str(webUrl.getcode()) # read the data from the URL and print it data = webUrl.read() print data if __name__ == "__main__": main()
Python 3 Contoh
# # read the data from the URL and print it # import urllib.request # open a connection to a URL using urllib webUrl = urllib.request.urlopen('https://www.youtube.com/user/guru99com') #get the result code and print it print ("result code: " + str(webUrl.getcode())) # read the data from the URL and print it data = webUrl.read() print (data)
Cara Menangani Kesalahan urllib: URLKesalahan dan HTTPError
Permintaan tidak selalu berhasil. Ketika terjadi kesalahan, urllib akan melempar exception alih-alih mengembalikan data, jadi penting untuk menangani kesalahan ini. Modul urllib.error mendefinisikan dua kelas exception utama.
- HTTPError Pesan ini muncul ketika server mengembalikan kode status kesalahan, seperti 404 Not Found atau 500 Internal Server Error. Pesan ini membawa kode status dan isi respons.
- URLerror Pengecualian ini muncul ketika server sama sekali tidak dapat dijangkau, misalnya karena nama domain yang salah atau tidak ada koneksi internet. Pengecualian ini membawa atribut alasan yang menjelaskan kegagalan tersebut.
Karena HTTPError adalah subkelas dari URLKesalahan, selalu tangkap HTTPError terlebih dahulu agar setiap jenis kesalahan ditangani secara terpisah:
from urllib.request import urlopen from urllib.error import HTTPError, URLError try: response = urlopen("https://www.guru99.com/no-such-page.html") data = response.read() except HTTPError as error: print("HTTP error:", error.code) except URLError as error: print("URL error:", error.reason)
Menangani pengecualian ini mencegah program Anda mengalami kerusakan dan memungkinkan Anda untuk mencatat masalah, mencoba kembali permintaan, atau menggunakan data yang tersimpan dalam cache.
Cara Mengunduh File dari URL Menggunakan urllib
Membaca a URL Menyimpan ke memori berfungsi untuk halaman kecil, tetapi untuk gambar, dokumen PDF, atau kumpulan data, lebih mudah untuk menyimpan respons langsung ke disk. Modul urllib.request menawarkan dua cara sederhana untuk melakukan ini.
Fungsi urlretrieve() mengunduh sebuah URL langsung ke file lokal dalam satu baris:
from urllib.request import urlretrieve urlretrieve("https://www.python.org/static/img/python-logo.png", "logo.png")
Untuk kontrol lebih lanjut, buka URL dan tulis sendiri byte-nya. Buka file lokal dalam mode biner karena urlopen() mengembalikan byte, bukan teks:
from urllib.request import urlopen with urlopen("https://example.com/data.zip") as response: with open("data.zip", "wb") as file: file.write(response.read())
Untuk file yang sangat besar, baca dan tulis dalam sebuah loop menggunakan response.read(8192) sehingga seluruh file tidak pernah disimpan dalam memori sekaligus.
urllib vs. pustaka requests di Python
urllib adalah bagian dari Python Pustaka standar, sehingga berfungsi di mana saja tanpa instalasi. Pustaka requests pihak ketiga tidak terintegrasi, tetapi banyak pengembang lebih menyukainya untuk pekerjaan HTTP sehari-hari karena sintaksnya lebih pendek dan lebih mudah dibaca.
Perbedaan utama adalah:
- instalasi: urllib dilengkapi dengan Python, sedangkan requests harus diinstal dengan pip.
- Dekode: urllib mengembalikan byte mentah yang Anda dekode sendiri, sementara requests mendekode teks dan JSON secara otomatis.
- Kenyamanan: requests menangani sesi, cookie, dan header khusus dengan kode yang lebih sedikit.
- Dependensi: urllib tidak menambahkan apa pun, sedangkan requests mengandalkan urllib3 di bawahnya.
Pilih urllib jika Anda menginginkan nol dependensi atau hanya membutuhkan permintaan cepat dan sekali jalan. Pilih requests untuk proyek yang lebih besar yang melibatkan otentikasi, sesi, atau panggilan API yang sering. Keduanya mengirimkan permintaan HTTP yang sama, jadi keputusannya bergantung pada kenyamanan versus daftar dependensi yang lebih kecil.


