2. Header HTTP atau bidang header server berisi informasi yang dapat digunakan klien untuk mempelajari lebih lanjut tentang respons dan server yang mengirimkannya. Informasi ini dapat membantu klien menampilkan respons kepada pengguna, menyimpan (atau meng-cache) respons untuk digunakan di masa mendatang, dan membuat permintaan tambahan ke server sekarang atau di masa mendatang
Content-Type: application/json Content-Length: 19
3. Tubuh pesan HTTP berisi sumber daya yang diminta oleh klien dari server. Server tidak mengembalikan isi pesan untuk HEAD
Apa itu pustaka Permintaan Python?
Perpustakaan Permintaan adalah Perpustakaan paling populer yang memudahkan pengiriman permintaan HTTP menggunakan metode POST, GET dan PUT, memposting data JSON dan XML, mengunggah file, dan mengirimkan formulir HTML. Perpustakaan secara otomatis memvalidasi sertifikat SSL server dan mendukung cookie sesi dan Nama Domain Internasional. Pustaka Permintaan dibuat di pustaka urllib3 dan menyamarkan kerumitan membuat permintaan HTTP di balik API sederhana. Perpustakaan Permintaan tidak terdapat dalam distribusi Python, hampir semua orang menggunakan Perpustakaan Permintaan karena kode Python untuk bekerja dengan HTTP menjadi sederhana, singkat, dan lugas
Bagaimana cara menggunakan pustaka Permintaan Python?
Untuk menginstal pustaka Python Requests, jalankan perintah berikut
Instal Perpustakaan Permintaan Python
pip install requests_
Setelah menginstal Perpustakaan Permintaan, Anda dapat menggunakannya dalam pekerjaan Anda
import requests
Lihat juga
- Bagaimana cara mendapatkan JSON menggunakan Permintaan Python?
- Bagaimana cara menggunakan objek sesi dalam Permintaan Python?
- Bagaimana cara mengatur batas waktu dalam Permintaan Python?
- Bagaimana cara memposting JSON menggunakan Perpustakaan Permintaan Python?
- Bagaimana cara mengirim permintaan POST menggunakan Perpustakaan Permintaan Python?
- Bagaimana cara mengirim permintaan GET menggunakan Perpustakaan Permintaan Python?
Contoh dan artikel API Terkait Permintaan Python
Bagaimana cara mengubah permintaan Curl ke Python? . kesedihan()?
❮ Modul Permintaan
Contoh
Buat permintaan ke halaman web, dan kembalikan kode status
permintaan impor
x = permintaan. dapatkan('https. //w3sekolah. com')
cetak (x. Kode status)
Definisi dan Penggunaan
Objek requests.Response()_ berisi respons server terhadap permintaan HTTP
Properti dan Metode
Property/MethodDescriptionapparent_encodingCoba Mengembalikan pengkodean yang terlihatclose()Coba Menutup koneksi ke konten serverCoba Mengembalikan konten respons, dalam bytescookiesCoba Mengembalikan objek CookieJar dengan cookie yang dikirim kembali dari serverelapsedCoba kembalikan objek timedelta dengan waktu yang berlalu sejak pengiriman permintaan ke . textheadersCoba Mengembalikan kamus riwayat tajuk responsCoba Mengembalikan daftar objek respons yang menyimpan riwayat permintaan (url)is_permanent_redirectCoba Mengembalikan Benar jika respons adalah url yang dialihkan permanen, jika tidak Falseis_redirectCoba Mengembalikan Benar jika respons dialihkan, jika tidak Falseiter_content()Coba berulang❮ Modul Permintaan
Ada banyak modul Python. Permintaan adalah salah satu yang banyak digunakan untuk mengirim permintaan HTTP. Ini adalah alternatif pihak ketiga untuk "urllib" standar, "urllib2", dan "urllib3" karena dapat membingungkan dan seringkali perlu digunakan bersama. Permintaan di Python sangat menyederhanakan proses pengiriman permintaan HTTP ke tujuannya
Belajar mengirim permintaan dengan Python adalah bagian dari perjalanan setiap pengembang pemula. Dalam tutorial permintaan Python ini, kami akan menguraikan prinsip landasan, dasar dan beberapa penggunaan lanjutan. Selain itu, kami akan memberikan beberapa contoh permintaan Python
Meminta filosofi pembangunan
Modul Permintaan Python adalah perpustakaan yang berusaha untuk semudah mungkin digunakan dan diurai. Pustaka HTTP Python standar sulit digunakan, diurai, dan seringkali membutuhkan lebih banyak pernyataan secara signifikan untuk melakukan hal yang sama. Mari kita lihat contoh Urllib3 dan Permintaan
Urllib3
Permintaan
Permintaan tidak hanya mengurangi jumlah pernyataan yang diperlukan tetapi juga membuat kode secara signifikan lebih mudah dipahami dan di-debug bahkan untuk mata yang tidak terlatih
Seperti yang bisa dilihat, Requests lebih efisien daripada pustaka Python standar mana pun dan itu bukan kebetulan. Permintaan telah dan sedang dikembangkan dengan mempertimbangkan beberapa idiom PEP 20 (The Zen of Python).
Cantik lebih baik daripada jelek
Eksplisit lebih baik daripada implisit
Sederhana lebih baik daripada kompleks
Kompleks lebih baik daripada rumit
Jumlah keterbacaan
Kelima idiom ini membentuk dasar pengembangan modul permintaan Python yang sedang berlangsung dan setiap kontribusi baru harus sesuai dengan prinsip-prinsip yang tercantum di atas
Memulai Permintaan
Permintaan bukan bagian dari Perpustakaan Standar Python, oleh karena itu perlu diunduh dan diinstal. Menginstal Permintaan sederhana karena dapat dilakukan melalui terminal
Kami merekomendasikan penggunaan terminal yang disediakan di lingkungan pengkodean (mis. g. PyCharm) karena akan memastikan bahwa perpustakaan akan dipasang tanpa masalah
Terakhir, sebelum mulai menggunakan Permintaan dalam proyek apa pun, perpustakaan perlu diimpor
#In Python "import requests" allows us to use the library import requests
Permintaan python. DAPATKAN
Dari semua kemungkinan permintaan HTTP, GET adalah yang paling umum digunakan. GET, seperti namanya, adalah upaya untuk memperoleh data dari sumber tertentu (biasanya, situs web). Untuk mengirim permintaan GET, aktifkan permintaan. get() dengan Python dan tambahkan URL tujuan, mis. g
import requests requests.get('//httpbin.org/')_
Contoh permintaan dasar Python kami akan mengembalikan pesan. Respons 200 adalah 'OK' yang menunjukkan bahwa permintaan telah berhasil. Pesan respons juga dapat dilihat dengan membuat objek dan print(object. Kode status). Masih banyak lagi kode status dan beberapa yang paling sering ditemui adalah
200 – ‘Oke’
400 – 'Permintaan buruk' dikirim ketika server tidak dapat memahami permintaan yang dikirim oleh klien. Umumnya, ini menunjukkan sintaks permintaan yang salah, pembingkaian pesan permintaan yang tidak valid, dll
401 - 'Tidak Sah' dikirim setiap kali memenuhi permintaan membutuhkan penyediaan kredensial yang valid
403 – ‘Terlarang’ berarti server memahami permintaan tersebut tetapi tidak akan memenuhinya. Jika kredensial diberikan, 403 berarti akun yang dimaksud tidak memiliki izin yang memadai untuk melihat konten
404 - 'Tidak ditemukan' berarti server tidak menemukan konten yang cocok dengan Request-URI. Terkadang 404 digunakan untuk menutupi respons 403 saat server tidak ingin mengungkapkan alasan penolakan permintaan
Rupanya, 404 mungkin berarti "kami tidak ingin mengungkapkan halaman karena alasan lain"
Permintaan GET dapat dikirim dengan parameter tertentu jika diperlukan. Parameter mengikuti logika yang sama seperti jika seseorang membuat URL dengan tangan. Setiap parameter dikirim setelah tanda tanya ditambahkan ke URL asli dan pasangan dipisahkan oleh tanda ampersand (&).
payload = {'key1': 'value1', 'key2': 'value2'} requests.get('//httpbin.org/', params=payload)
URL kami sekarang akan dibentuk sebagai
//httpbin.org/get?key2=value2&key1=value1_
Namun meskipun berguna, kode status itu sendiri tidak mengungkapkan banyak hal tentang konten yang diperoleh. Sejauh ini, kami hanya tahu apakah akuisisi itu berhasil atau tidak, dan jika tidak, kemungkinan alasannya apa
Respon membaca
Untuk melihat objek respons permintaan Python yang dikirim oleh permintaan GET, kita harus membuat variabel. Demi kesederhanaan, beri nama 'respons'
response = requests.get('//httpbin.org/')
Dalam Permintaan Python, nilai batas waktu disetel ke tidak ada secara default yang berarti bahwa jika kami tidak menerima respons, aplikasi kami akan hang tanpa batas waktu
Kami sekarang dapat mengakses kode status tanpa menggunakan konsol. Untuk melakukannya, kita perlu mencetak bagian tertentu (status_code)
print(response.status_code)_
Sejauh ini hasilnya akan sama dengan yang diterima sebelumnya –. Perhatikan bahwa kode status dalam memiliki nilai boolean yang ditetapkan untuknya (200 hingga 400 adalah Benar, 400 dan lebih tinggi adalah Salah). Menggunakan kode respons sebagai nilai boolean dapat bermanfaat karena beberapa alasan seperti memeriksa apakah respons berhasil secara umum sebelum melanjutkan melakukan tindakan lain pada respons tersebut
Untuk membaca isi dari respon, kita perlu mengakses bagian teks dengan menggunakan response. teks. Mencetak output akan memberikan seluruh respons ke jendela debugger Python
Permintaan secara otomatis mencoba membuat tebakan tentang pengkodean berdasarkan header HTTP, oleh karena itu memberikan nilai tidak diperlukan. Dalam kasus yang jarang terjadi, mengubah pengkodean mungkin diperlukan dan dapat dilakukan dengan menentukan nilai untuk respons. pengkodean. Nilai yang kami tentukan kemudian akan digunakan setiap kali kami melakukan panggilan
Tanggapan juga dapat diterjemahkan ke dalam format JSON. HTTPbin tidak mengirimkan permintaan yang dapat diterjemahkan ke dalam JSON. Mencoba melakukannya akan menimbulkan pengecualian. Untuk tujuan penjelasan, mari gunakan API Github
response = requests.get('//api.github.com') print(response.json())_
Menggunakan. json() mengembalikan objek kamus yang dapat diakses dan dicari
Header permintaan Python menyimpan data penting yang terkait dengan pesan
Header respons adalah bagian penting lain dari permintaan. Meskipun tidak berisi konten apa pun dari pesan aslinya, header menyimpan banyak detail penting dari respons seperti informasi tentang server, tanggal, penyandian, dll. Setiap detail dapat diperoleh dari respons awal dengan melakukan panggilan
Seperti dengan. json(), header membuat objek tipe kamus yang kemudian dapat diakses. Menambahkan parameter ke panggilan akan mencantumkan bagian dari respons, mis. g
print(response.headers['Date'])
Fungsi kami sekarang akan mencetak tanggal yang disimpan di header respons. Nilai dianggap tidak peka huruf besar/kecil, oleh karena itu Permintaan akan menampilkan hasil yang sama terlepas dari apakah parameter dibentuk sebagai 'tanggal' atau 'Tanggal'
Anda juga dapat mengirim tajuk permintaan Python khusus. Objek tipe kamus digunakan lagi, meskipun kali ini harus dibuat. Header diteruskan dengan cara yang identik dengan parameter. Untuk memeriksa apakah tajuk permintaan kami telah berhasil dikirim, kami perlu membuat respons panggilan. meminta. header
import requests headers = {'user-agent': 'my-agent/1.0.1'} response = requests.get('//httpbin.org/', headers=headers) print(response.request.headers)
Menjalankan kode kita harus menampilkan header permintaan di jendela debugger dengan agen pengguna dinyatakan sebagai 'agen-saya/1. 0. 1'. Sebagai aturan umum, mengirimkan agen pengguna yang paling umum disarankan karena jika tidak, beberapa situs web dapat mengembalikan respons 403 'Terlarang'
Header HTTP khusus biasanya digunakan untuk pemecahan masalah atau tujuan informasi. Agen pengguna sering digunakan dalam proyek pengikisan web untuk mengubah sumber yang dirasakan dari permintaan yang masuk
Permintaan python. POS
Mengirim permintaan Python POST adalah metode HTTP kedua yang paling banyak digunakan. Mereka digunakan untuk membuat sumber daya di server dengan data tertentu. Mengirim permintaan POST hampir sesederhana mengirim GET
response = requests.post('//httpbin.org/post', data = {'key':'value'})
Tentu saja, semua metode HTTP (HEAD adalah pengecualian) mengembalikan badan respons yang dapat dibaca. Tanggapan terhadap permintaan POST dapat dibaca dengan cara yang sama seperti GET (atau metode lainnya)
Tanggapan, agak jelas, dalam kaitannya dengan jenis permintaan yang dibuat. Misalnya, respons permintaan POST berisi informasi mengenai data yang dikirim ke server
Dalam kebanyakan kasus, menentukan data dalam permintaan POST mungkin tidak cukup. Pustaka permintaan menerima argumen dari objek kamus yang dapat digunakan untuk mengirim data lebih lanjut
import requests requests.get('//httpbin.org/')_0
Permintaan baru kami akan mengirimkan objek payload ke server tujuan. Terkadang, mengirimkan permintaan JSON POST mungkin diperlukan. Permintaan memiliki fitur tambahan yang secara otomatis mengubah data permintaan POST menjadi JSON
import requests requests.get('//httpbin.org/')_1
Sebagai alternatif, pustaka json dapat digunakan untuk mengonversi kamus menjadi objek JSON. Impor baru akan diperlukan untuk mengubah jenis objek
import requests requests.get('//httpbin.org/')_2
Perhatikan bahwa argumen "json" diganti jika "data" atau "file" digunakan. Permintaan hanya akan menerima salah satu dari ketiganya dalam satu POST
Metode HTTP lainnya
POST dan GET adalah dua metode paling umum yang digunakan oleh rata-rata pengguna. Misalnya, pengguna Scraper API hanya menggunakan dua metode HTTP ini untuk mengirim permintaan pekerjaan (POST) dan menerima data (GET). Namun, ada lebih banyak cara untuk berinteraksi dengan server melalui HTTP
PUT – mengganti semua representasi saat ini dari sumber daya target dengan konten yang diunggah
HAPUS – menghapus semua representasi saat ini dari sumber daya target yang diberikan oleh URI
HEAD – mirip dengan GET, tetapi hanya mentransfer status dan bagian header
OPSI – menjelaskan opsi komunikasi untuk sumber daya target
TRACE - menggemakan pesan permintaan asli kembali ke sumbernya
PATCH – menerapkan modifikasi pada sumber daya tertentu
Semua metode HTTP yang tercantum di atas jarang digunakan di luar administrasi server, pengembangan web, dan debugging. Rata-rata pengguna internet tidak akan memiliki izin yang diperlukan untuk melakukan tindakan seperti DELETE atau PUT di hampir semua situs web. Metode HTTP lainnya sebagian besar berguna untuk menguji situs web, sesuatu yang seringkali di luar bidang minat pengguna internet rata-rata
Kesimpulan
Pustaka Permintaan Python adalah alat yang sangat kuat dan mudah digunakan yang dapat digunakan untuk mengirim permintaan HTTP. Memahami dasar-dasar seringkali cukup untuk membuat aplikasi atau skrip sederhana
Ingin mengetahui lebih lanjut tentang mengembangkan skrip Python? . Blog kami memiliki banyak panduan dasar dan lanjutan untuk semua kebutuhan proxy dan scraping Anda
Tentang Penulis Adoma Sulcas Ketua Tim Humas Adomas Sulcas adalah Pimpinan Tim Humas di Oxylabs. Dibesarkan dalam rumah tangga yang berpikiran teknologi, ia dengan cepat mengembangkan minat dalam segala hal yang berhubungan dengan TI dan Internet. Ketika dia tidak sedang online atau tenggelam dalam membaca, Anda akan menemukannya sedang bertualang atau datang dengan ide bisnis yang jahat. Semua informasi di Oxylabs Blog disediakan "sebagaimana adanya" dan hanya untuk tujuan informasi. Kami tidak mewakili dan melepaskan semua tanggung jawab sehubungan dengan penggunaan Anda atas informasi apa pun yang terdapat di Blog Oxylabs atau situs web pihak ketiga mana pun yang mungkin ditautkan di dalamnya. Sebelum terlibat dalam aktivitas scraping dalam bentuk apa pun, Anda harus berkonsultasi dengan penasihat hukum Anda dan membaca persyaratan layanan situs web tertentu dengan saksama atau menerima lisensi scrapingApa itu kode respons HTTP py 200?
Apa kode status di Python?
Bagaimana saya tahu jika permintaan posting berhasil dengan Python?
Bagaimana Anda menangani respons 202 dengan Python?