Requests adalah modul Python yang bisa kamu gunakan untuk mengirim berbagai request HTTP. Requests adalah library yang mudah digunakan dengan banyak fitur mulai dari melempar parameter dalam URL sampai mengirim header khusus dan verifikasi SSL. Dalam tutorial ini, kamu akan belajar bagaimana menggunakan library ini untuk mengirim request HTTP sederhana dalam Python. Kamu bisa menggunakan Requests dengan Python versi 2.6-2.7 dan 3.3-3.6. Sebelum melanjutkan lebih jauh, kamu perlu tahu bahwa Requests adalah modul eksternal, jadi kamu harus menginstallnya terlebih dahulu sebelum mencoba contoh pada tutorial ini. Kamu bisa menginstallnya dengan menjalankan perintah berikut di terminal: 1 pip install requests Setelah kamu menginstal modul tersebut, kamu bisa memastikan instalasi sukses dengan mengimportnya dengan menggunakan perintah ini: 1 import requests Jika instalasi berhasil, kamu tidak akan melihat pesan error apapun. Membuat Request GETMengirim request HTTP menggunakan Requests sangat mudah. Kamu mulai dengan mengimpor modul dan membuat request. Berikut ini adalah contohnya: 1 import requests 2 req = requests.get('https://tutsplus.com/') Semua informasi tentang request kita sekarang disimpan dalam objek Resonse yang bernama pip install requests68. Contohnya, kamu bisa mendapat encoding dari halaman web menggunakan proprti pip install requests69. Kamu juga bisa mendapatkan kode status dari request menggunakan properti pip install requests70. 1 req.encoding # returns 'utf-8' 2 pip install requests1 Kamu bisa mengakses cookie yang dikirim balik oleh server menggunakan pip install requests71. Begitu pula, kamu bisa mendapat header respon menggunakan pip install requests72. Properti pip install requests72 mengembalikan kamus case incensitive dari respon header. Ini berarti pip install requests74, pip install requests75 dan pip install requests76 semuanya akan mengembalikan nilai dari pip install requests77 response header. Kamu bisa memeriksa apakah respon berupa HTTP redirect yang bisa saja sudah diproses secara otomatis menggunakan properti pip install requests78. Properti itu akan mengembalikan pip install requests79 atau pip install requests80 berdasarkan respon tersebut. Kamu juga bisa mendapat waktu yang sudah berjalan antara mengirim request dan mendapatkan respon menggunakan properti pip install requests81. URL yang kamu kirim ke fungsi pip install requests82 mungkin berbeda dengan URL akhir dari respon karena berbagai alasan, termasuk redirect. Untuk melihat URL respon terakhir, kamu bisa menggunakan properti pip install requests83. 1 import requests 2 pip install requests5 pip install requests6 pip install requests7 pip install requests8 pip install requests9 10 11 12 13 14 15 16 17 18 19 import requests0 import requests1 import requests2 import requests3 import requests4 Mendapatkan semua informasi tentang webpage yang kamu akses memang bagus, tapi kemungkinan besar kamu ingin mengakses konten sebenarnya. Jika konten yang kamu akses berupa teks, kamu bisa menggunakan properti pip install requests84 untuk mengaksesnya. Konten akan diurai sebagai unicode. Kamu bisa mengetahui jenis encoding untuk mendecode teks menggunakan properti pip install requests69. Dalam kasus respon yang bukan teks, kamu bisa mengaksesnya dalam format binary menggunakan pip install requests86. Modul akan secara otomatis mendecode pip install requests87 dan melakukan pip install requests88 terhadap encoding selama transfer. Hal ini akan berguna ketika kamu berurusan dengan file media. Begitu pula kamu bisa mengakses konten json-encoded dalam respon, jika memang ada, menggunakan pip install requests89. Kamu juga bisa menadapat respon mentah dari server menggunakan pip install requests90. Ingat bahwa kamu perlu melempar pip install requests91 pada request untuk mendapat respon mentah. Sebagian file yang kamu unduh dari internet menggunakan modul Requests mungkin berukuran besar. Dalam hal itu, tidak bijak untuk membuka keseluruhan respon atau file dalam memori sekaligus. Kamu bisa mendownload file dalam potongan-potongan menggunakan fungsi pip install requests92. Fungsi ini mengiterasi data respon sejumlah pip install requests93 byte. Jika pada request diatur pip install requests91, fungsi ini akan menghindari membaca keseluruhan file ke memori sekaligus untuk respon yang besar. Parameter pip install requests93 bisa berupa bilangan bulat atau pip install requests96. Jika diatur sebagai bilangan bulat, pip install requests93 akan menentukan jumlah byte yang akan dibaca ke memori. Ketika pip install requests93 diatur sebagai pip install requests96 dan 100 diatur ke pip install requests79, data akan dibaca saat sampai berapapun ukuran potongan yang diterima. Saat pip install requests93 diatur menjadi pip install requests96 dan 100 diatur pip install requests80, semua data akan dikembalikan sebagai satu potongan. Mari unduh gambar hutan di Pixabay menggunakan modul Requests. Ini adalah gambarnya: Ini adalah kode yang kamu butuhkan: 1 import requests 2 import requests8 pip install requests6 10 pip install requests7 12 pip install requests9 14 11 16 13 18 106 adalah URL gambar sebenarnya; kamu bisa mengisinya dengan URL gambar apa saja untuk mengunduh gambar tersebut. Gambar ini berukuran 185kb, dan kamu mengatur pip install requests93 menjadi 50.000 byte. Ini berarti pesan "Received a Chunk" akan dicetak empat kali di terminal. Ukuran potongan terakhir akan hanya 39.350 byte karena sisa dari tiga iterasi pertama adalah 39.350 byte. Request juga memperbolehkan kamu melempar parameter dalam URL. Ini berguna ketika kamu mencari sebuah halamanw eb untuk sebuah hasil spesifik seperti gambar atau tutorial. Kamu bisa menyediakan query string tersebut sebagai kamus dari string menggunakan kata kunci 108 pada request GET. Berikut adalah contohnya: 1 import requests 2 pip install requests6 import requests3 pip install requests7 import requests5 pip install requests9 11 import requests8 13 20 Membuat Request POSTmembuat request POST sama mudahnya dengan membuat request GET. Kamu cukup menggunakan fungsi 109, bukan pip install requests82. Ini akan berguna ketika kamu ingin secara otomatis mengisi form. Contohnya, kode ini akan mengunduh semua halaman Wikipedia tentang Nanotechnology dan menyimpannya di PC-mu. 1 import requests 2 24 pip install requests6 10 pip install requests7 28 pip install requests9 14 11 18 Mengirim Cookie dan HeaderSeperti yang disebutkan sebelumnya, kamu bisa mengakses cookie dan header yang dikirim balik oleh server menggunakan pip install requests71 dan pip install requests72. Modul Requests juga membolehkan kamu mengirim cookie dan header khusus dalam sebuah request. Ini akan berguna ketika kamu ingin membuat agen user khusus untuk request tersebut. Untuk menambahkan header HTTP ke sebuah request, kamu cukup melempar sebuah 113 ke parameter 114. Begitu pula kamu bisa mengirim cookie kamu sendiri ke server menggunakan 113 yang dilempar ke parameter 116. 1 import requests 2 pip install requests6 req = requests.get('https://tutsplus.com/')7 pip install requests7 pip install requests9 10 11 12 13 15 15 Cookie juga bisa dilempar dalam sebuah Cookie Jar. Hal tersebut menyediakan lebih banyak antarmuka lengkap untuk membuat kamu menggunakan cookie via banyak jalur. Berikut adalah contohnya: 1 import requests 2 pip install requests6 req.encoding # returns 'utf-8'0 pip install requests7 req.encoding # returns 'utf-8'2 pip install requests9 req.encoding # returns 'utf-8'4 11 req.encoding # returns 'utf-8'6 13 15 req.encoding # returns 'utf-8'9 16 pip install requests01 18 import requests0 pip install requests04 import requests1 import requests3 pip install requests07 Objek SessionKadang penting untuk mempertahankan beberapa parameter antar beberapa request. Objek Session akan melakukan itu. Contohnya, Session akan mempertahankan data cookie antar semua request yang dibuat menggunakan session yang sama. Objek Session menggunakan connection pooling urllib3. Hal ini berarti koneksi TCP di balik layar akan digunakan ulang untuk semua request yang dibuat untuk host yang sama. Ini bisa meningkatkan performa secara signifikan. Kamu bisa juga menggunakan fungsi-fungsi objek Requests pada objek Session. Berikut adalah contoh beberapa request yang dikirim dengan dan tanpa menggunakan sessions: 1 import requests 2 pip install requests6 pip install requests12 pip install requests7 pip install requests14 pip install requests9 pip install requests16 11 13 pip install requests19 15 pip install requests21 16 pip install requests23 18 import requests0 pip install requests26 import requests1 pip install requests28 import requests3 pip install requests30 pip install requests31 pip install requests32 pip install requests33 pip install requests34 pip install requests35 pip install requests36 pip install requests37 pip install requests38 pip install requests32 Seperti yang kamu bisa lihat, cookie session memiliki nilai yang berbeda pada request pertama dan kedua, tapi memiliki nilai yang sama ketika kita menggunakan objek Session. Kamu akan mendapatkan nilai yang berbeda saat mencoba kode ini, tapi dalam kasus kamu, cookie untuk request yang dibuat menggunakan objek Session akan memiliki nilai yang sama. Session juga berguna ketika kamu ingin melempar data yang sama untuk semua request. Contohnya, kamu memutuskan untuk mengirim cookie atau header user-agent dengan semua request ke sebuah domain, kamu bisa menggunakan objek Session. Berikut adalah contohnya: 1 import requests 2 pip install requests6 pip install requests44 pip install requests7 pip install requests46 pip install requests9 11 pip install requests49 13 pip install requests51 15 pip install requests53 16 18 pip install requests56 import requests0 pip install requests58 import requests1 pip install requests60 import requests3 pip install requests31 pip install requests63 pip install requests33 pip install requests65 pip install requests34 pip install requests53 Seperti yang bisa kamu lihat, session cookie 117 dikirim pada tiga request tersebut. Tapi cookie 118 hanya dikirim pada request kedua. Cookie 118 tidak disebut di request ketiga. Ini membuktikan cookie atau data yang diatur pada sebuah request tidak akan dikirim bersama request session yang lain. KesimpulanKonsep yang dibahas pada tutorial ini akan membantu kamu membuat request dasar ke sebuah server dengan mengirim header, cookie, atau query string tertentu. Ini akan sangat berguna ketika kamu ingin mengorek halaman web untuk mendapatkan informasi. Sekarang, kamu juga sudah bisa secara otomatis mengunduh file musik dan wallpaper dari berbagai situs berbeda setelah kamu tahu pola dari URL-nya. |