Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan modul urllib.request untuk menghantar permintaan HTTP dalam Python 3.x

Cara menggunakan modul urllib.request untuk menghantar permintaan HTTP dalam Python 3.x

王林
王林asal
2023-07-30 11:21:281531semak imbas

Cara menggunakan modul urllib.request untuk menghantar permintaan HTTP dalam Python 3.x

Dalam proses pembangunan sebenar, kami selalunya perlu menghantar permintaan HTTP untuk berinteraksi dengan pelayan. Python menyediakan modul urllib.request, yang merupakan salah satu modul dalam perpustakaan standard Python untuk mengendalikan permintaan URL. Dalam artikel ini, kita akan belajar cara menghantar permintaan HTTP menggunakan modul urllib.request.

Gambaran keseluruhan modul urllib.request

modul urllib.request ialah modul permintaan HTTP terbina dalam Python3, yang menyediakan satu siri kaedah untuk menghantar dan memproses permintaan HTTP. Ia boleh melaksanakan kaedah permintaan HTTP biasa seperti permintaan GET dan permintaan POST, dan juga menyokong pengepala permintaan tetapan, data borang, kuki dan fungsi lain.

Untuk menggunakan modul urllib.request, kita perlu mengimportnya dahulu:

import urllib.request

Kemudian, kita boleh menggunakan kaedah dalam modul urllib.request untuk menghantar permintaan HTTP.

Hantar permintaan GET

Untuk menghantar permintaan GET dan mendapatkan kandungan respons pelayan, kita boleh menggunakan kaedah urlopen() dalam modul urllib.request. Contohnya adalah seperti berikut:

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

Dalam contoh ini, kami mula-mula menghantar permintaan GET menggunakan kaedah urlopen() dan URL yang diminta ialah http://www.example.com. Kemudian, kami memanggil kaedah response.read() untuk mendapatkan kandungan respons pelayan. Akhir sekali, gunakan kaedah print() untuk mencetak kandungan.

Hantar permintaan POST

Untuk menghantar permintaan POST dan memuat naik data borang, kami boleh membina objek urllib.request.Request dan menggunakan kaedah urlopen() untuk menghantar permintaan. Contohnya adalah seperti berikut:

import urllib.request
import urllib.parse

# 构造表单数据
data = urllib.parse.urlencode({'key1': 'value1', 'key2': 'value2'}).encode()

# 构造请求对象
request = urllib.request.Request('http://www.example.com', data)

# 发送 POST 请求
response = urllib.request.urlopen(request)

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

Dalam contoh ini, kami mula-mula membina data borang menggunakan kaedah urllib.parse.urlencode(). Kemudian, gunakan kaedah encode() untuk menukarnya kepada strim bait. Seterusnya, kami membina objek urllib.request.Request dan hantar URL dan bentuk data sebagai parameter. Akhir sekali, gunakan kaedah urlopen() untuk menghantar permintaan dan mendapatkan kandungan respons pelayan.

Tetapkan pengepala permintaan

Jika anda perlu menetapkan pengepala permintaan, seperti Ejen Pengguna, Perujuk dan maklumat lain, anda boleh menggunakan kaedah add_header() bagi objek urllib.request.Request. Contohnya adalah seperti berikut:

import urllib.request

# 构造请求对象
request = urllib.request.Request('http://www.example.com')

# 设置请求头
request.add_header('User-Agent', 'Mozilla/5.0')

# 发送请求
response = urllib.request.urlopen(request)

Dalam contoh ini, kita mula-mula membina objek urllib.request.Request dan hantar URL kepadanya sebagai parameter. Kemudian, gunakan kaedah add_header() untuk menetapkan pengepala permintaan Ejen Pengguna. Akhirnya, permintaan dihantar menggunakan kaedah urlopen().

Memproses keputusan permintaan

Selepas menghantar permintaan, kami boleh mendapatkan respons pelayan dengan menghubungi kaedah respons yang berkaitan. Kaedah yang biasa digunakan termasuk:

  • response.read(): Dapatkan kandungan respons pelayan dan kembalikan data dalam bentuk strim bait.
  • response.getheaders(): Dapatkan maklumat pengepala respons pelayan dan kembalikan senarai.
  • response.getheader(name): Dapatkan maklumat pengepala respons bagi nama yang ditentukan.

Contohnya seperti berikut:

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 获取服务器响应的头信息
headers = response.getheaders()

# 获取指定名称的响应头信息
content_type = response.getheader('Content-Type')

# 打印结果
print(content)
print(headers)
print(content_type)

Dalam contoh ini, kami mula-mula menghantar permintaan GET dan mendapat respons daripada pelayan. Kemudian, kami memanggil kaedah response.read(), response.getheaders() dan response.getheader(name) masing-masing untuk mendapatkan kandungan, maklumat pengepala dan maklumat pengepala respons bagi nama yang ditentukan daripada respons pelayan. Akhir sekali, cetak hasilnya.

Ringkasan

Secara ringkasnya, kami mempelajari cara menggunakan modul urllib.request untuk menghantar permintaan HTTP. Melalui modul urllib.request, kami boleh dengan mudah menghantar permintaan GET, permintaan POST, memuat naik data borang, menetapkan pengepala permintaan, dsb. Ini sangat membantu kami untuk berinteraksi dengan pelayan, mendapatkan data, dll.

Saya harap artikel ini akan membantu semua orang memahami dan menggunakan modul urllib.request. Terima kasih kerana membaca!

Atas ialah kandungan terperinci Cara menggunakan modul urllib.request untuk menghantar permintaan HTTP dalam Python 3.x. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn