PYTHON

Cara Mudah Belajar Library Requests Pada Python

Pustaka requests adalah salah satu bagian integral dari Python untuk membuat permintaan HTTP ke URL tertentu. Baik itu REST API atau Web Scrapping, permintaan harus dipelajari untuk melangkah lebih jauh dengan teknologi ini. Saat seseorang membuat permintaan ke URI, ia mengembalikan respons. Permintaan Python menyediakan fungsionalitas bawaan untuk mengelola permintaan dan respons.

Mengapa mempelajari modul requests Python?

  • Permintaan adalah perpustakaan HTTP Berlisensi Apache2, yang memungkinkan untuk mengirim permintaan HTTP/1.1 menggunakan Python.
  • Untuk bermain dengan web, Permintaan Python adalah keharusan. Baik itu mengenai API, mengunduh seluruh halaman facebook, dan banyak lagi hal keren lainnya, seseorang harus membuat permintaan ke URL.
  • Permintaan memainkan peran utama berurusan dengan REST API , dan Web Scrapping.

Menginstal Requests

Permintaan instalasi tergantung pada jenis sistem operasi yang digunakan eis, perintah dasar di mana saja adalah membuka terminal perintah dan menjalankan.

pip install requests

Metode dasar untuk menginstal permintaan pada sistem operasi apa pun adalah dengan mengambil file dasar dan menginstal permintaan secara manual dan Permintaan dikembangkan secara aktif di GitHub, di mana kodenya selalu tersedia. Untuk kode – kunjungi di sini .

Membuat requests

Modul permintaan Python memiliki beberapa metode bawaan untuk membuat permintaan Http ke URI yang ditentukan menggunakan permintaan GET, POST, PUT, PATCH atau HEAD. Permintaan Http dimaksudkan untuk mengambil data dari URI tertentu atau untuk mendorong data ke server. Ini berfungsi sebagai protokol permintaan-tanggapan antara klien dan server. Mari kita tunjukkan cara membuat permintaan GET ke titik akhir.

Metode GET digunakan untuk mengambil informasi dari server yang diberikan menggunakan URI yang diberikan. Metode GET mengirimkan informasi pengguna yang disandikan yang ditambahkan ke permintaan halaman. Halaman dan informasi yang disandikan dipisahkan oleh tanda '?' karakter. Sebagai contoh:

https://www.google.com/search?q=halo

Cara membuat permintaan GET melalui Permintaan Python

Modul permintaan Python menyediakan metode bawaan yang disebut get() untuk membuat permintaan GET ke URI yang ditentukan. Sintaks :

request.get(url, params={key: value}, args)

Contoh

Mari kita coba membuat permintaan ke API github untuk tujuan contoh.

import requests

# Making a GET request
r = requests.get('https://api.github.com/users/naveenkrnl')

# check status code for response received
# success code - 200
print(r)

# print content of request
print(r.content)

simpan file ini sebagai request.py dan melalui terminal run.

python3 request.py

Metode Permintaan HTTP :

  • GET : Metode GET digunakan untuk mengambil informasi dari server yang diberikan menggunakan URI yang diberikan.
  • POST : Metode permintaan POST meminta server web menerima data yang disertakan dalam isi pesan permintaan, kemungkinan besar untuk menyimpannya.
  • PUT : Metode PUT meminta agar entitas terlampir disimpan di bawah URI yang disediakan. Jika URI merujuk ke sumber daya yang sudah ada, itu dimodifikasi dan jika URI tidak menunjuk ke sumber daya yang ada, maka server dapat membuat sumber daya dengan URI tersebut.
  • DELETE : Metode DELETE menghapus sumber daya yang ditentukan.
  • HEAD : Metode HEAD meminta respons yang identik dengan permintaan GET, tetapi tanpa badan respons.
  • PATCH : Ini digunakan untuk memodifikasi kemampuan. Permintaan PATCH hanya perlu berisi perubahan pada sumber daya, bukan sumber daya yang lengkap.

Objek respons

Saat seseorang membuat permintaan ke URI, ia mengembalikan respons. Objek Respon ini dalam bentuk python dikembalikan oleh request.method(), metodenya adalah – get, post, put, dll. Response adalah objek yang kuat dengan banyak fungsi dan atribut yang membantu dalam menormalkan data atau membuat bagian kode yang ideal. Misalnya, response.status_code mengembalikan kode status dari header itu sendiri, dan seseorang dapat memeriksa apakah permintaan berhasil diproses atau tidak. Objek respons dapat digunakan untuk menyiratkan banyak fitur, metode, dan fungsionalitas. Contoh :

# import requests module
import requests

# Making a get request
response = requests.get('https://api.github.com/')

# print request object
print(response.url)

# print status code
print(response.status_code)

Simpan file ini sebagai request.py, dan jalankan menggunakan perintah di bawah ini.

python3 requests.py

Kode status 200 menunjukkan bahwa permintaan berhasil dibuat.

Metode Respons :

  • response.headers : response.headers mengembalikan kamus header respons.
  • response.encoding : response.encoding mengembalikan pengkodean yang digunakan untuk memecahkan kode response.content.
  • response.elapsed : response.elapsed mengembalikan objek timedelta dengan waktu yang berlalu dari pengiriman permintaan hingga kedatangan respons.
  • response.close() : response.close() menutup koneksi ke server.
  • response.content : response.content mengembalikan konten respons, dalam byte.
  • response.cookies : response.cookies mengembalikan objek CookieJar dengan cookie yang dikirim kembali dari server.
  • response.history : response.history mengembalikan daftar objek respons yang menyimpan riwayat permintaan (url).
  • response.is_permanent_redirect : response.is_permanent_redirect mengembalikan True jika responsnya adalah url pengalihan permanen, jika tidak False.
  • response.is_redirect : response.is_redirect mengembalikan True jika respons dialihkan, jika tidak False.
  • response.iter_content() : response.iter_content() mengulangi response.content.
  • response.json() : response.json() mengembalikan objek JSON dari hasil (jika hasilnya ditulis dalam format JSON, jika tidak akan menimbulkan kesalahan).
  • response.url : response.url mengembalikan URL tanggapan.
  • response.text : response.text mengembalikan konten respons, dalam unicode.
  • response.status_code : response.status_code mengembalikan angka yang menunjukkan status (200 OK, 404 Tidak Ditemukan).
  • response.request : response.request mengembalikan objek permintaan yang meminta respons ini.
  • response.reason : response.reason mengembalikan teks yang sesuai dengan kode status.
  • response.raise_for_status() : response.raise_for_status() mengembalikan objek HTTPError jika terjadi kesalahan selama proses.
  • response.ok : response.ok mengembalikan True jika status_code kurang dari 200, jika tidak False.
  • response.links : response.links mengembalikan tautan tajuk.

Otentikasi menggunakan requests Python

Otentikasi mengacu pada memberikan izin pengguna untuk mengakses sumber daya tertentu. Karena, setiap orang tidak dapat diizinkan untuk mengakses data dari setiap URL, orang akan memerlukan otentikasi terutama. Untuk mencapai otentikasi ini, biasanya seseorang menyediakan data otentikasi melalui header Otorisasi atau header kustom yang ditentukan oleh server. Contoh :

# import requests module
import requests
from requests.auth import HTTPBasicAuth

# Making a get request
response = requests.get('https://api.github.com / user, ',
			auth = HTTPBasicAuth('user', 'pass'))

# print request object
print(response)

Ganti "pengguna" dan "lulus" dengan nama pengguna dan kata sandi Anda. Ini akan mengotentikasi permintaan dan mengembalikan respons 200 atau yang lain akan mengembalikan kesalahan 403.

Verifikasi Sertifikat SSL

Permintaan memverifikasi sertifikat SSL untuk permintaan HTTPS, sama seperti browser web. Sertifikat SSL adalah file data kecil yang secara digital mengikat kunci kriptografik ke detail organisasi. Seringkali, situs web dengan sertifikat SSL disebut sebagai situs web aman. Secara default, verifikasi SSL diaktifkan, dan Permintaan akan memunculkan SSLError jika tidak dapat memverifikasi sertifikat.

Nonaktifkan verifikasi sertifikat SSL

Mari kita coba mengakses situs web dengan sertifikat SSL yang tidak valid, menggunakan permintaan Python :

# import requests module
import requests

# Making a get request
response = requests.get('https://expired.badssl.com/')

# print request object
print(response)

Keluaran :

Website ini tidak memiliki setup SSL sehingga memunculkan error ini. seseorang juga dapat meneruskan tautan ke sertifikat untuk validasi melalui permintaan python saja.

# import requests module
import requests

# Making a get request
response = requests.get('https://github.com', verify ='/path/to/certfile')

# print request object
print(response)

Ini akan berfungsi jika jalur yang disediakan benar untuk sertifikat SSL untuk github.com. Untuk kunjungan lebih lanjut Verifikasi Sertifikat SSL – Permintaan Python

Objek Sesi

Objek sesi memungkinkan seseorang untuk mempertahankan parameter tertentu di seluruh permintaan. Itu juga mempertahankan cookie di semua permintaan yang dibuat dari instance Sesi dan akan menggunakan penyatuan koneksi urllib3. Jadi jika beberapa permintaan dibuat ke host yang sama, koneksi TCP yang mendasarinya akan digunakan kembali, yang dapat menghasilkan peningkatan kinerja yang signifikan. Objek sesi semua metode sesuai permintaan.

Menggunakan Objek Sesi

Mari kita ilustrasikan penggunaan objek sesi dengan menyetel cookie ke url dan kemudian membuat permintaan lagi untuk memeriksa apakah cookie sudah disetel.

# import requests module
import requests

# create a session object
s = requests.Session()

# make a get request
s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')

# again make a get request
r = s.get('https://httpbin.org/cookies')

# check if cookie is still set
print(r.text)

Keluaran :

Untuk lebih lanjut, kunjungi Objek Sesi Permintaan Python.

Sumber asli : geeksforgeks