Bagaimana Anda mengakses objek respons dengan python?

Anda dapat berinteraksi dengan objek permintaan Python menggunakan atributnya (mis. g.

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
8) dan metode (mis. g.
URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
_9)

Permintaan Python Instal

Instal permintaan python versi terbaru menggunakan pip

$ pip install requests

Untuk panduan ini, Anda perlu menginstal Python dan menginstal paket-paket berikut

$ pip install beautifulsoup4
$ pip install urllib

Impor Modul Permintaan

Untuk mengimpor pustaka

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
_0 dengan Python gunakan kata kunci impor

import requests

Metode Permintaan

  • mendapatkan. Minta data
  • pos. Publikasikan data
  • meletakkan. Ganti datanya
  • tambalan. Buat perubahan sebagian pada data
  • menghapus. Hapus data
  • kepala. Mirip dengan mendapatkan permintaan tetapi tanpa tubuh
  • Meminta. Buat objek permintaan dengan menentukan metode yang akan dipilih

Dapatkan Permintaan

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_

Keluaran

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}

Posting Permintaan

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
_

Keluaran

{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
_

Metode Respon dan Atribut

Objek respons berisi respons server terhadap permintaan HTTP

Anda dapat menyelidiki detail objek Response dengan menggunakan

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
1

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

help(response)

Dalam tutorial ini kita akan melihat yang berikut ini

  • teks, deskriptor data. Isi tanggapan, dalam unicode
  • konten, deskriptor data. Konten respons, dalam byte
  • url, atribut. URL permintaan
  • kode_status, atribut. Kode status dikembalikan oleh server
  • header, atribut. Header HTTP dikembalikan oleh server
  • sejarah, atribut. daftar objek respons yang menyimpan riwayat permintaan
  • tautan, atribut. Mengembalikan tautan tajuk respons yang diurai, jika ada
  • json, metode. Mengembalikan konten respons yang dikodekan json, jika ada

Akses Metode dan Atribut Respons

Respons dari permintaan adalah objek tempat Anda dapat mengakses metode dan atributnya

Anda dapat mengakses atribut menggunakan notasi

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
_2 dan metode menggunakan notasi
import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
3

import requests

url = 'http://archive.org/wayback/available?url=jcchouinard.com'
response = requests.get(url)

response.text # access response data atributes and descriptors
response.json() # access response methods

{'url': 'jcchouinard.com',
 'archived_snapshots': {'closest': {'status': '200',
   'available': True,
   'url': 'http://web.archive.org/web/20210930032915/https://www.jcchouinard.com/',
   'timestamp': '20210930032915'}}}

Memproses Respons

Akses JSON Permintaan Python

Dalam permintaan Python, metode

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
_4 memungkinkan untuk mengakses objek JSON dari respons. Jika hasil permintaan tidak ditulis dalam format JSON, dekoder JSON akan mengembalikan pengecualian
import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
5

Tampilkan Kode Status

$ pip install beautifulsoup4
$ pip install urllib
0

Dapatkan HTML halaman

$ pip install beautifulsoup4
$ pip install urllib
1

Tampilkan tajuk HTTP

$ pip install beautifulsoup4
$ pip install urllib
2

$ pip install beautifulsoup4
$ pip install urllib
_3

Tampilkan pengalihan

$ pip install beautifulsoup4
$ pip install urllib
_4

$ pip install beautifulsoup4
$ pip install urllib
5

Parsing HTML dengan Request dan BeautifulSoup

Parsing dengan BeautifulSoup

$ pip install beautifulsoup4
$ pip install urllib
6

Anda dapat melihat bahwa teks sulit untuk menafsirkan string

$ pip install beautifulsoup4
$ pip install urllib
_7

$ pip install beautifulsoup4
$ pip install urllib
8

$ pip install beautifulsoup4
$ pip install urllib
_9

Outputnya lebih mudah untuk ditafsirkan sekarang setelah diurai dengan BeautifulSoup

Anda dapat mengekstrak tag menggunakan metode

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
_6 atau
import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
7

import requests
0

Keluaran

import requests
1

import requests
2

Keluaran

import requests
_3

Atau, bahkan pilih atribut tag

import requests
_4

Keluaran

import requests
5

Mendapatkan tag SEO utama dari halaman web

import requests
_6

Keluaran

import requests
_7

Mengekstrak semua tautan di halaman

import requests
_8

Keluaran

import requests
_9

Tingkatkan Permintaan

Parameter String Kueri

Parameter kueri memungkinkan Anda menyesuaikan permintaan Python dengan meneruskan nilai ke parameter string kueri. Sebagian besar permintaan API perlu menambahkan parameter kueri ke permintaan. Ini adalah kasus dengan API Wikipedia

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_0

Untuk menambahkan parameter string kueri, berikan kamus parameter ke argumen

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
8. Berikut adalah tampilan url permintaan

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_1

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_2

Menangani Kesalahan

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_3

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_4

Ubah Agen-Pengguna

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_5

Tambahkan Batas Waktu untuk meminta

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_6

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_7

Gunakan Proksi

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_8

Tambahkan Header ke Permintaan

import requests

url = 'https://crawler-test.com/'
response = requests.get(url)

print('URL: ', response.url)
print('Status code: ', response.status_code)
print('HTTP header: ', response.headers)
_9

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
0

Sesi Permintaan

Objek sesi berguna saat Anda perlu membuat permintaan dengan parameter yang bertahan melalui semua permintaan dalam satu sesi

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
_1

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
_2

Menangani Percobaan Ulang dalam Permintaan Python

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
_3

Metode HTTP Lainnya

Di atas Permintaan

import requests

payload = {
    'name':'Jean-Christophe',
    'last_name':'Chouinard',
    'website':'https://www.jcchouinard.com/'
    }

response = requests.post(url, data = payload)

response.json()
9 dan
{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
0, pustaka Python memungkinkan untuk menggunakan metode HTTP populer lainnya seperti
{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
1,
{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
2,
{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
3,
{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
4 dan
{'args': {},
 'data': '',
 'files': {},
 'form': {'last_name': 'Chouinard',
  'name': 'Jean-Christophe',
  'website': 'https://www.jcchouinard.com/'},
 'headers': {'Accept': '*/*',
  'Accept-Encoding': 'gzip, deflate',
  'Content-Length': '85',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Host': 'httpbin.org',
  'User-Agent': 'python-requests/2.24.0',
  'X-Amzn-Trace-Id': 'Root=1-615a4271-417e9fff3c75f47f3af9fde2'},
 'json': None,
 'origin': '149.167.130.162',
 'url': 'https://httpbin.org/post'}
5

URL:  https://crawler-test.com/
Status code:  200
HTTP header:  {'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Sun, 03 Oct 2021 23:41:59 GMT', 'Server': 'nginx/1.10.3', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '8098', 'Connection': 'keep-alive'}
_4

Apa itu Perpustakaan Permintaan Python?

Pustaka permintaan python, juga dikenal sebagai permintaan python, adalah pustaka HTTP yang memungkinkan pengguna mengirim permintaan HTTP menggunakan Python. Tagline-nya "Python HTTP for Humans" mewakili kesederhanaan paket dengan baik

Tutorial menggunakan Permintaan

  • API Wikipedia dengan Python
  • Baca RSS Feed dengan Python dan Beautiful Soup
  • Cara Posting di LinkedIn API Dengan Python
  • Reddit API Tanpa Kredensial API
  • Kirim Pesan Dengan Slack API dan Python
  • Kategori GMB apa yang Digunakan Kompetisi?
  • Perpustakaan Python untuk SEO – Panduan Pemula
  • Agen Pengguna Acak Dengan Python dan BeautifulSoup (oleh JR Oakes)
  • Dapatkan Skor BERT untuk SEO (oleh Pierre Rouarch)

Karya menarik dari masyarakat

  • Cara Memeriksa Kode Status URL di Peta Situs melalui Python (oleh Koray Tuğberk GÜBÜR)
  • Secara Otomatis Menemukan Peluang Penghubung SEO dengan Python (oleh Greg Bernhardt)
  • Contoh Python API Yoast SEO dengan Permintaan + Panda (oleh Erick Rumbold)
  • Cara Mengunduh Banyak Gambar Dengan Python (oleh James Phoenix)
  • Tren Saran Otomatis Google untuk Kata Kunci Niche (oleh Stefan Neefischer)
  • Python Scraping Web Asinkron (oleh James Phoenix)

Tutorial Scraping Web Lainnya

  • Scraping Web dengan Python dengan Scrapy
  • Scraping Web dengan Permintaan-HTML

Fakta tentang Permintaan Python

Python Requests AuthorKenneth ReitzPython Requests LanguagePythonPython Requests MethodsGET, POST, PUT, DELETE, PATCH, OPTIONS, HEADPython Requests Releases2011-02-14

Kesimpulan

Jika Anda mencari alternatif untuk pustaka permintaan, Anda mungkin tertarik dengan pustaka permintaan-HTML yang menyediakan beberapa opsi parsing HTML bawaan

Pustaka ini tidak hanya berguna untuk pengikisan web, tetapi juga untuk pengembangan web dan usaha lain yang menggunakan API

Kami sekarang menyimpulkan pengantar di perpustakaan Python Requests

5/5 - (4 suara)

Bagaimana Anda mengakses objek respons dengan python?

Jean-Christophe Chouinard

Ahli Strategi SEO di Tripadvisor, bekas Seek (Melbourne, Australia). Khusus dalam SEO teknis. Dalam upaya SEO terprogram untuk organisasi besar melalui penggunaan Python, R, dan pembelajaran mesin

Bagaimana cara mendapatkan data dari objek respons Python?

Respon Permintaan impor objek resp = permintaan. dapatkan('https. //reqres. di/api/pengguna') status_code = resp. status_code status_ok = resp. ok print(f'Kode statusnya adalah {status_code}.

Bagaimana Anda mendapatkan respons dengan Python?

Ketika seseorang membuat permintaan ke URI, ia mengembalikan respons. Objek Respon ini dalam hal python dikembalikan oleh permintaan. method() , metodenya adalah – dapatkan, posting, letakkan, dll. Respons adalah objek yang kuat dengan banyak fungsi dan atribut yang membantu menormalkan data atau membuat bagian kode yang ideal.

Bagaimana cara mendapatkan data dari respons API dengan Python?

Lakukan panggilan API Anda .
def get_data(self, api)
tanggapan = permintaan. dapatkan(f"{api}")
jika respon. kode_status == 200
print("berhasil mengambil data")
diri sendiri. format_print(respons. json())
print(f"Halo orang, ada {response. status_code} kesalahan dengan permintaan Anda")

Bagaimana cara mendapatkan respons URL dengan Python?

Permintaan Python umumnya digunakan untuk mengambil konten dari URI sumber daya tertentu. Setiap kali kita membuat permintaan ke URI yang ditentukan melalui Python, ia mengembalikan objek respons . Sekarang, objek respons ini akan digunakan untuk mengakses fitur tertentu seperti konten, header, dll.