Artikelverzeichnis
urllib.request-Modul
Das In Python ist dasurllib.request
-Modul eines der Standardbibliotheksmodule, die zur Verarbeitung von URL-Anfragen verwendet werden. Es bietet eine Reihe von Funktionen zum Öffnen, Lesen und Verarbeiten von URLs, einschließlich des Sendens von HTTP-Anfragen und der Verarbeitung von Antworten. Hier sind einige der Hauptfunktionen des urllib.request
-Moduls:
Öffne URL:
-
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
- Wird zum Öffnen der angegebenen URL verwendet.
url
ist die zu öffnende URL-Zeichenfolge.data
Sind optionale Anfragedaten. Wenn Sie eine POST-Anfrage senden müssen, können Sie Daten über diesen Parameter bereitstellen.timeout
ist ein optionaler Timeout in Sekunden.cafile
,capath
,cadefault
Gibt das Zertifikat für die SSL/TLS-Verbindung an.context
Wird verwendet, um den SSL-Kontext anzugeben.
from urllib.request import urlopen with urlopen('https://www.example.com') as response: html = response.read() print(html)
Senden Sie eine HTTP-Anfrage:
-
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
::- wird verwendet, um ein HTTP-Anforderungsobjekt zu erstellen, das in
urlopen
verwendet werden kann. url
ist die anzufordernde URL.data
sind optionale Anfragedaten.headers
Ist ein Wörterbuch optionaler Anforderungsheader.method
Ist eine optionale Anforderungsmethode, z. B. „GET“ oder „POST“.
from urllib.request import Request, urlopen req = Request('https://www.example.com', headers={ 'User-Agent': 'Mozilla/5.0'}) with urlopen(req) as response: html = response.read() print(html)
- wird verwendet, um ein HTTP-Anforderungsobjekt zu erstellen, das in
Behandeln Sie die Antwort:
-
HTTPResponse-Beispiel:
- Das von
urlopen
zurückgegebene Objekt ist eine Instanz vom Typhttp.client.HTTPResponse
. - Stellt Methoden und Eigenschaften bereit, z. B. das Lesen von Antwortinhalten, das Abrufen von Antwortheadern und das Abrufen von Statuscodes.
from urllib.request import urlopen with urlopen('https://www.example.com') as response: status_code = response.getcode() headers = response.getheaders() html = response.read() print(f"Status Code: { status_code}") print(f"Headers: { headers}") print(html)
- Das von
Dies sind einige der Hauptfunktionen und Methoden im Modul urllib.request
. Mit diesem Modul können Sie URL-Anfragen einfach verarbeiten und den Inhalt von Remote-Ressourcen in Python abrufen.
Anwendung
So lesen und zeigen Sie Webinhalte an
Wenn Sie Webinhalte lesen und anzeigen möchten, können Sie die Python-Bibliothek urllib.request
verwenden, indem Sie die folgenden Schritte ausführen:
-
**Modul
urllib.request
importieren: **Importieren Sie zunächst das Modulurllib.request
, das die Funktionalität zum Öffnen von URLs enthält.import urllib.request
-
**Geben Sie die URL der Webseite an, die Sie lesen möchten: **Geben Sie die URL der Webseite an, die Sie in Ihrem Code lesen möchten.
url = 'http://www.example.com'
Ersetzen Sie
'http://www.example.com'
durch die URL der Seite, an der Sie interessiert sind. -
**URL öffnen und Dateiobjekt abrufen:**Verwenden Sie die Funktion
urllib.request.urlopen
, um die angegebene URL zu öffnen, die ein Dateiobjekt zurückgibt, das Sie zum Lesen des Inhalts der Webseite verwenden können .with urllib.request.urlopen(url) as response: # 在此处执行对网页内容的操作
Die Using
with
-Anweisung stellt sicher, dass das Dateiobjekt nach der Verarbeitung des Webseiteninhalts automatisch geschlossen wird, was eine bewährte Vorgehensweise ist. -
**Lesen Sie den Inhalt der Webseite:** Verwenden Sie die Methode
read()
des Dateiobjekts, um den Inhalt der Webseite zu lesen.with urllib.request.urlopen(url) as response: web_content = response.read()
web_content
Enthält nun den Byte-Inhalt der Webseite. -
** Konvertieren Sie den Byte-Inhalt in eine Zeichenfolge und zeigen Sie ihn an: ** Verwenden Sie die Methode
decode()
, um den Byte-Inhalt in eine Zeichenfolge umzuwandeln und auszugeben.with urllib.request.urlopen(url) as response: web_content = response.read() print(web_content.decode('utf-8'))
Hier wird davon ausgegangen, dass die Webseite die UTF-8-Kodierung verwendet. Wenn Sie wissen, dass die Seite eine andere Kodierung verwendet, können Sie die Parameter der Methode
decode
entsprechend anpassen.
Vollständiges Codebeispiel:
import urllib.request
url = 'http://www.example.com'
with urllib.request.urlopen(url) as response:
web_content = response.read()
print(web_content.decode('utf-8'))
Dieser Code öffnet die angegebene URL, liest den Inhalt der Webseite und zeigt ihn als Zeichenfolge auf der Konsole an.
Übermitteln Sie Webseitenparameter
Wenn Sie Parameter an die Webseite übermitteln müssen, können Sie die POST-Methode in der HTTP-Anfrage verwenden. Hier ist eine Schritt-für-Schritt-Einführung in die Verwendung der Python-Bibliothekrequests
:
-
**Bibliothek
requests
installieren: **Wenn Sie die Bibliothek nicht installiert habenrequests
, können Sie sie mit dem folgenden Befehl installieren:pip install requests
-
**Import
requests
-Modul: **Importrequests
-Modul in Ihrem Python-Skript.import requests
-
**Geben Sie die URL an, an die Sie Parameter senden möchten:** Geben Sie in Ihrem Code die URL der Webseite an, an die Sie Parameter senden möchten.
url = 'http://www.example.com/post_endpoint'
Ersetzen Sie
'http://www.example.com/post_endpoint'
durch die tatsächliche Webadresse, an die Sie Parameter übermitteln möchten. -
**Bereiten Sie die zu übermittelnden Parameter vor:** Erstellen Sie ein Wörterbuch mit den Parametern, die Sie übermitteln möchten.
payload = { 'param1': 'value1', 'param2': 'value2'}
Hier
payload
ist ein Wörterbuch, das zwei Parameterparam1
undparam2
und die entsprechenden Werte enthält. -
** Senden Sie eine POST-Anfrage und übergeben Sie Parameter: ** Verwenden Sie die Methode
requests.post
, um eine POST-Anfrage zu senden und die Parameter über den Parameterdata
zu übergeben .response = requests.post(url, data=payload)
Hier ist
url
die von Ihnen angegebene Webseitenadresse unddata
das zu übermittelnde Parameterwörterbuch. -
**Antwort prüfen:** Überprüfen Sie die Antwort des Servers, um festzustellen, ob die Anfrage erfolgreich war.
if response.status_code == 200: print('请求成功!') print('响应内容:', response.text) else: print(f'请求失败,状态码: { response.status_code}')
Hier überprüfen wir den HTTP-Antwortstatuscode durch
response.status_code
. Wenn der Statuscode 200 ist, bedeutet dies, dass die Anfrage erfolgreich ist. Sie können je nach tatsächlichem Bedarf unterschiedliche Statuscodes verarbeiten.
Vollständiges Codebeispiel:
import requests
url = 'http://www.example.com/post_endpoint'
payload = {
'param1': 'value1', 'param2': 'value2'}
response = requests.post(url, data=payload)
if response.status_code == 200:
print('请求成功!')
print('响应内容:', response.text)
else:
print(f'请求失败,状态码: {
response.status_code}')
Dieser Code sendet Parameter im POST-Modus an die angegebene URL und gibt die Antwort des Servers aus.
Verwenden Sie einen HTTP-Proxy, um auf die Seite zuzugreifen
Wenn Sie über einen HTTP-Proxy auf eine Seite zugreifen möchten, können Sie die Python-Bibliothek requests
verwenden und den Proxy einrichten. Hier ist eine Schritt-für-Schritt-Anleitung:
-
**Bibliothek
requests
installieren: **Wenn Sie die Bibliothek nicht installiert habenrequests
, können Sie sie mit dem folgenden Befehl installieren:pip install requests
-
**Import
requests
-Modul: **Importrequests
-Modul in Ihrem Python-Skript.import requests
-
**Geben Sie die URL an, auf die Sie zugreifen möchten:** Geben Sie in Ihrem Code die URL der Webseite an, auf die Sie zugreifen möchten.
url = 'http://www.example.com'
Ersetzen Sie
'http://www.example.com'
durch die tatsächliche Webadresse, die Sie besuchen möchten. -
**Proxy angeben:**Legen Sie die Adresse des Proxyservers fest. Der Proxyserver kann je nach Proxytyp ein HTTP-Proxy oder ein HTTPS-Proxy sein.
proxy = { 'http': 'http://your_http_proxy_address', 'https': 'http://your_https_proxy_address' }
Ersetzen Sie
your_http_proxy_address
undyour_https_proxy_address
durch die Proxy-Server-Adresse, die Sie tatsächlich verwenden. -
**Verwenden Sie beim Senden der Anfrage einen Proxy: **Übergeben Sie den Proxy über den Parameter
proxies
anrequests.get
oderrequests.post
usw. Methode.response = requests.get(url, proxies=proxy)
Hier ist
url
die von Ihnen angegebene Webseitenadresse undproxies
ist ein Wörterbuch, das die Proxy-Adresse enthält. -
**Antwort prüfen:** Überprüfen Sie die Antwort des Servers, um festzustellen, ob die Anfrage erfolgreich war.
if response.status_code == 200: print('请求成功!') print('响应内容:', response.text) else: print(f'请求失败,状态码: { response.status_code}')
Hier überprüfen wir den HTTP-Antwortstatuscode durch
response.status_code
. Wenn der Statuscode 200 ist, bedeutet dies, dass die Anfrage erfolgreich ist. Sie können je nach tatsächlichem Bedarf unterschiedliche Statuscodes verarbeiten.
Vollständiges Codebeispiel:
import requests
url = 'http://www.example.com'
proxy = {
'http': 'http://your_http_proxy_address',
'https': 'http://your_https_proxy_address'
}
response = requests.get(url, proxies=proxy)
if response.status_code == 200:
print('请求成功!')
print('响应内容:', response.text)
else:
print(f'请求失败,状态码: {
response.status_code}')
Bitte beachten Sie, dass bestimmte Proxy-Einstellungen je nach Netzwerkumgebung und Proxy-Typ variieren können. Stellen Sie sicher, dass Sie die richtigen Proxy-Informationen für Ihre tatsächliche Netzwerkumgebung verwenden.