Einführung und Anwendung verwandter Module der Python-Crawler-URLlib-Bibliothek

Fügen Sie hier eine Bildbeschreibung ein

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:

  1. urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

    • Wird zum Öffnen der angegebenen URL verwendet.
    • urlist die zu öffnende URL-Zeichenfolge.
    • dataSind optionale Anfragedaten. Wenn Sie eine POST-Anfrage senden müssen, können Sie Daten über diesen Parameter bereitstellen.
    • timeoutist ein optionaler Timeout in Sekunden.
    • cafile, capath, cadefault Gibt das Zertifikat für die SSL/TLS-Verbindung an.
    • contextWird 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:

  1. 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.
    • urlist die anzufordernde URL.
    • datasind optionale Anfragedaten.
    • headersIst ein Wörterbuch optionaler Anforderungsheader.
    • methodIst 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)
    

Behandeln Sie die Antwort:

  1. HTTPResponse-Beispiel

    • Das von urlopen zurückgegebene Objekt ist eine Instanz vom Typ http.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)
    

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:

  1. **Modulurllib.request importieren: **Importieren Sie zunächst das Modulurllib.request, das die Funktionalität zum Öffnen von URLs enthält.

    import urllib.request
    
  2. **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.

  3. **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 Usingwith-Anweisung stellt sicher, dass das Dateiobjekt nach der Verarbeitung des Webseiteninhalts automatisch geschlossen wird, was eine bewährte Vorgehensweise ist.

  4. **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_contentEnthält nun den Byte-Inhalt der Webseite.

  5. ** 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 Methodedecode 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:

  1. **Bibliothekrequests installieren: **Wenn Sie die Bibliothek nicht installiert habenrequests, können Sie sie mit dem folgenden Befehl installieren:

    pip install requests
    
  2. **Importrequests-Modul: **Importrequests-Modul in Ihrem Python-Skript.

    import requests
    
  3. **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.

  4. **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'}
    

    Hierpayload ist ein Wörterbuch, das zwei Parameter param1 und param2 und die entsprechenden Werte enthält.

  5. ** 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 Parameter data zu übergeben .

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

    Hier ist url die von Ihnen angegebene Webseitenadresse und data das zu übermittelnde Parameterwörterbuch.

  6. **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 durchresponse.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:

  1. **Bibliothekrequests installieren: **Wenn Sie die Bibliothek nicht installiert habenrequests, können Sie sie mit dem folgenden Befehl installieren:

    pip install requests
    
  2. **Importrequests-Modul: **Importrequests-Modul in Ihrem Python-Skript.

    import requests
    
  3. **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.

  4. **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 Sieyour_http_proxy_address und your_https_proxy_address durch die Proxy-Server-Adresse, die Sie tatsächlich verwenden.

  5. **Verwenden Sie beim Senden der Anfrage einen Proxy: **Übergeben Sie den Proxy über den Parameter proxies an requests.get oder requests.post usw. Methode.

    response = requests.get(url, proxies=proxy)
    

    Hier ist url die von Ihnen angegebene Webseitenadresse und proxies ist ein Wörterbuch, das die Proxy-Adresse enthält.

  6. **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 durchresponse.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.

Guess you like

Origin blog.csdn.net/weixin_74850661/article/details/134398921