Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python 3.x

So verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python 3.x

王林
Freigeben: 2023-07-30 11:21:28
Original
1634 Leute haben es durchsucht

So verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python 3.x

Im eigentlichen Entwicklungsprozess müssen wir häufig HTTP-Anfragen senden, um mit dem Server zu interagieren. Python stellt das Modul urllib.request bereit, eines der Module in der Python-Standardbibliothek zur Verarbeitung von URL-Anfragen. In diesem Artikel erfahren Sie, wie Sie HTTP-Anfragen mit dem Modul urllib.request senden.

urllib.request-Modulübersicht

urllib.request-Modul ist das integrierte HTTP-Anforderungsmodul von Python3, das eine Reihe von Methoden zum Senden und Verarbeiten von HTTP-Anforderungen bereitstellt. Es kann gängige HTTP-Anfragemethoden wie GET-Anfrage und POST-Anfrage implementieren und unterstützt auch das Festlegen von Anfrageheadern, Formulardaten, Cookies und anderen Funktionen.

Um das Modul urllib.request zu verwenden, müssen wir es zunächst importieren:

import urllib.request
Nach dem Login kopieren

Dann können wir die Methoden im Modul urllib.request verwenden, um HTTP-Anfragen zu senden.

Senden Sie eine GET-Anfrage

Um eine GET-Anfrage zu senden und den Inhalt der Serverantwort abzurufen, können wir die Methode urlopen() im Modul urllib.request verwenden. Ein Beispiel ist wie folgt:

import urllib.request

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

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

# 打印服务器响应的内容
print(content)
Nach dem Login kopieren

In diesem Beispiel senden wir zunächst eine GET-Anfrage mit der Methode urlopen() und die angeforderte URL ist http://www.example.com. Anschließend haben wir die Methode „response.read()“ aufgerufen, um den Inhalt der Serverantwort abzurufen. Verwenden Sie abschließend die Methode print(), um den Inhalt auszudrucken.

Senden Sie eine POST-Anfrage

Um eine POST-Anfrage zu senden und Formulardaten hochzuladen, können wir ein urllib.request.Request-Objekt erstellen und die Methode urlopen() verwenden, um die Anfrage zu senden. Ein Beispiel ist wie folgt:

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)
Nach dem Login kopieren

In diesem Beispiel erstellen wir zunächst Formulardaten mit der Methode urllib.parse.urlencode(). Verwenden Sie dann die Methode encode(), um es in einen Byte-Stream zu konvertieren. Als Nächstes erstellen wir ein urllib.request.Request-Objekt und übergeben ihm die URL und Formulardaten als Parameter. Verwenden Sie abschließend die Methode urlopen(), um die Anfrage zu senden und den Inhalt der Serverantwort abzurufen.

Anforderungsheader festlegen

Wenn Sie Anforderungsheader wie User-Agent, Referrer und andere Informationen festlegen müssen, können Sie die Methode add_header() des Objekts urllib.request.Request verwenden. Ein Beispiel ist wie folgt:

import urllib.request

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

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

# 发送请求
response = urllib.request.urlopen(request)
Nach dem Login kopieren

In diesem Beispiel erstellen wir zunächst ein urllib.request.Request-Objekt und übergeben ihm die URL als Parameter. Verwenden Sie dann die Methode add_header(), um einen User-Agent-Anfrageheader festzulegen. Abschließend wird die Anfrage mit der Methode urlopen() gesendet.

Verarbeitung der Anfrageergebnisse

Nach dem Senden der Anfrage können wir die Antwort des Servers erhalten, indem wir die entsprechenden Antwortmethoden aufrufen. Zu den häufig verwendeten Methoden gehören:

  • response.read(): Rufen Sie den Inhalt der Serverantwort ab und geben Sie Daten in Form eines Bytestreams zurück.
  • response.getheaders(): Ruft die Header-Informationen der Serverantwort ab und gibt eine Liste zurück.
  • response.getheader(name): Ruft die Antwortheaderinformationen des angegebenen Namens ab.

Das Beispiel sieht wie folgt aus:

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)
Nach dem Login kopieren

In diesem Beispiel senden wir zuerst eine GET-Anfrage und erhalten die Antwort vom Server. Anschließend haben wir die Methoden „response.read()“, „response.getheaders()“ und „response.getheader(name)“ aufgerufen, um den Inhalt, die Header-Informationen und die Antwort-Header-Informationen des angegebenen Namens aus der Serverantwort abzurufen. Drucken Sie abschließend die Ergebnisse aus.

Zusammenfassung

Zusammenfassend haben wir gelernt, wie man das Modul urllib.request zum Senden von HTTP-Anfragen verwendet. Über das Modul urllib.request können wir ganz einfach GET-Anfragen und POST-Anfragen senden, Formulardaten hochladen, Anfrageheader festlegen usw. Dies ist für uns sehr hilfreich, um mit dem Server zu interagieren, Daten abzurufen usw.

Ich hoffe, dieser Artikel hilft Ihnen, das Modul urllib.request zu verstehen und zu verwenden. Danke fürs Lesen!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python 3.x. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage