Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article) 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: pip install requests Setelah kamu menginstal modul tersebut, kamu bisa memastikan instalasi sukses dengan mengimportnya dengan menggunakan perintah ini: 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: import requests req = requests.get('https://tutsplus.com/') Semua informasi tentang request kita sekarang disimpan dalam objek Resonse yang bernama req.encoding # returns 'utf-8' req.status_code # returns 200 Kamu bisa
mengakses cookie yang dikirim balik oleh server menggunakan Kamu bisa memeriksa apakah respon berupa HTTP redirect yang bisa saja sudah diproses secara otomatis menggunakan properti URL yang kamu kirim ke fungsi import requests req = requests.get('http://www.tutsplus.com/') req.encoding # returns 'utf-8' req.status_code # returns 200 req.elapsed # returns datetime.timedelta(0, 1, 666890) req.url # returns 'https://tutsplus.com/' req.history # returns [<Response [301]>, <Response [301]>] req.headers['Content-Type'] # returns 'text/html; charset=utf-8' 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 Dalam kasus respon yang bukan teks, kamu bisa mengaksesnya dalam format binary menggunakan Kamu juga bisa menadapat respon mentah dari server menggunakan 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 Fungsi ini mengiterasi data respon sejumlah Ketika Mari unduh gambar hutan di Pixabay menggunakan modul Requests. Ini adalah gambarnya: Ini adalah kode yang kamu butuhkan: import requests req = requests.get('path/to/forest.jpg', stream=True) req.raise_for_status() with open('Forest.jpg', 'wb') as fd: for chunk in req.iter_content(chunk_size=50000): print('Received a Chunk') fd.write(chunk)
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 import requests query = {'q': 'Forest', 'order': 'popular', 'min_width': '800', 'min_height': '600'} req = requests.get('https://pixabay.com/en/photos/', params=query) req.url # returns 'https://pixabay.com/en/photos/?order=popular&min_height=600&q=Forest&min_width=800' Membuat Request POSTmembuat request POST sama mudahnya dengan membuat request GET. Kamu cukup menggunakan fungsi import requests req = requests.post('https://en.wikipedia.org/w/index.php', data = {'search':'Nanotechnology'}) req.raise_for_status() with open('Nanotechnology.html', 'wb') as fd: for chunk in req.iter_content(chunk_size=50000): fd.write(chunk) Mengirim Cookie dan HeaderSeperti yang disebutkan sebelumnya, kamu bisa mengakses cookie dan header yang dikirim balik oleh server menggunakan Untuk menambahkan header HTTP ke sebuah request, kamu cukup melempar sebuah import requests url = 'http://some-domain.com/set/cookies/headers' headers = {'user-agent': 'your-own-user-agent/0.0.1'} cookies = {'visit-month': 'February'} req = requests.get(url, headers=headers, cookies=cookies) 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: import requests jar = requests.cookies.RequestsCookieJar() jar.set('first_cookie', 'first', domain='httpbin.org', path='/cookies') jar.set('second_cookie', 'second', domain='httpbin.org', path='/extra') jar.set('third_cookie', 'third', domain='httpbin.org', path='/cookies') url = 'http://httpbin.org/cookies' req = requests.get(url, cookies=jar) req.text # returns '{ "cookies": { "first_cookie": "first", "third_cookie": "third" }}' 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: import requests reqOne = requests.get('https://tutsplus.com/') reqOne.cookies['_tuts_session'] #returns 'cc118d94a84f0ea37c64f14dd868a175' reqTwo = requests.get('https://code.tutsplus.com/tutorials') reqTwo.cookies['_tuts_session'] #returns '3775e1f1d7f3448e25881dfc35b8a69a' ssnOne = requests.Session() ssnOne.get('https://tutsplus.com/') ssnOne.cookies['_tuts_session'] #returns '4c3dd2f41d2362108fbb191448eab3b4' reqThree = ssnOne.get('https://code.tutsplus.com/tutorials') reqThree.cookies['_tuts_session'] #returns '4c3dd2f41d2362108fbb191448eab3b4' 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: import requests ssn = requests.Session() ssn.cookies.update({'visit-month': 'February'}) reqOne = ssn.get('http://httpbin.org/cookies') print(reqOne.text) # prints information about "visit-month" cookie reqTwo = ssn.get('http://httpbin.org/cookies', cookies={'visit-year': '2017'}) print(reqTwo.text) # prints information about "visit-month" and "visit-year" cookie reqThree = ssn.get('http://httpbin.org/cookies') print(reqThree.text) # prints information about "visit-month" cookie Seperti yang bisa kamu lihat, session cookie 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. Jangan ragu melihat apa yang tersedia untuk dibeli dan dipelajari di marketplace, dan jangan sungkan
untuk bertanya atau memberi masukan menggunakan komentar di bawah. Jika kamu punya pertanyaan terkait tutorial ini, beri tahu saya di komentar. |