Zum Inhalt springen
GProxy
Registrierung
Гайды 5 Min. Lesezeit 103 Aufrufe

Proxy in Python mit der requests-Bibliothek verwenden

Entdecken Sie, wie Sie Proxys in Pythons requests-Bibliothek für sicheres Web-Scraping verwenden

Python
Proxy in Python mit der requests-Bibliothek verwenden

Ein HTTP-Proxy ist ein Vermittlungsserver, der als Gateway zwischen Ihnen und dem Internet fungiert. Wenn Sie einen Proxy verwenden, werden Ihre Anfragen zuerst über den Proxy-Server geleitet, bevor sie den Zielserver erreichen. Dies verbirgt Ihre IP-Adresse und kann für verschiedene Zwecke verwendet werden, wie z.B. das Umgehen geografischer Beschränkungen, Web Scraping und die Verbesserung der Sicherheit. Die Python-Bibliothek requests macht die Nutzung von Proxys in Ihren HTTP-Anfragen unkompliziert.

Warum Proxys mit der requests-Bibliothek verwenden?

Es gibt mehrere wichtige Gründe, warum Sie Proxys mit der requests-Bibliothek verwenden möchten:

  • Anonymität: Proxys maskieren Ihre IP-Adresse, wodurch es schwieriger wird, Ihre Online-Aktivitäten zu verfolgen.
  • Umgehen geografischer Beschränkungen: Greifen Sie auf Inhalte zu, die auf bestimmte Regionen beschränkt sind, indem Sie einen Proxy-Server in dieser Region verwenden.
  • Web Scraping: Vermeiden Sie eine Blockierung beim Scraping von Websites, indem Sie verschiedene Proxy-Server rotieren lassen. Viele Websites implementieren Ratenbegrenzungen oder IP-Blockierungen, um den Missbrauch ihrer Daten zu verhindern.
  • Lastverteilung: Verteilen Sie Anfragen auf mehrere Server, um Leistung und Zuverlässigkeit zu verbessern.
  • Sicherheit: Proxys können eine zusätzliche Sicherheitsebene hinzufügen, indem sie als Puffer zwischen Ihrem Computer und dem Internet fungieren. Sie können auch bösartige Inhalte filtern.
  • Tests: Simulieren Sie den Benutzerzugriff von verschiedenen Standorten zu Testzwecken.

Proxys in requests einrichten

Die requests-Bibliothek bietet eine einfache Möglichkeit, Proxys mithilfe des proxies-Parameters in den Anforderungsfunktionen (get, post, put, delete usw.) zu konfigurieren. Der proxies-Parameter akzeptiert ein Wörterbuch, dessen Schlüssel die Protokolle (z.B. 'http', 'https') und dessen Werte die Proxy-URLs sind.

Grundlegende Proxy-Konfiguration

Hier ist ein grundlegendes Beispiel, wie man einen Proxy mit der requests-Bibliothek verwendet:

import requests

proxies = {
  'http': 'http://your_proxy_address:port',
  'https': 'https://your_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Ersetzen Sie your_proxy_address und port durch die tatsächliche Adresse und den Port Ihres Proxy-Servers. Die Methode raise_for_status() ist entscheidend für die Fehlerbehandlung; sie löst eine Ausnahme aus, wenn der HTTP-Statuscode einen Fehler anzeigt (z.B. 404 Not Found, 500 Internal Server Error).

Verwendung unterschiedlicher Proxys für HTTP und HTTPS

Sie können auch unterschiedliche Proxys für HTTP- und HTTPS-Verkehr angeben:

import requests

proxies = {
  'http': 'http://http_proxy_address:port',
  'https': 'https://https_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Proxy-Authentifizierung

Viele Proxy-Server erfordern eine Authentifizierung. Sie können den Benutzernamen und das Passwort in die Proxy-URL aufnehmen:

import requests

proxies = {
  'http': 'http://username:password@your_proxy_address:port',
  'https': 'https://username:password@your_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Alternativ können Sie das Modul requests.auth für komplexere Authentifizierungsschemata verwenden. Für die grundlegende Benutzername/Passwort-Authentifizierung ist das Einbetten der Anmeldeinformationen in die URL jedoch in der Regel ausreichend.

SOCKS-Proxys

Die requests-Bibliothek unterstützt SOCKS-Proxys, aber Sie müssen das requests[socks]-Extra installieren.

pip install requests[socks]

Nach der Installation können Sie SOCKS-Proxys wie folgt verwenden:

import requests

proxies = {
  'http': 'socks5://user:pass@host:port',
  'https': 'socks5://user:pass@host:port'
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Sie können socks4- oder socks5-Schemata verwenden. Wenn für Ihren SOCKS-Proxy kein Benutzername/Passwort erforderlich ist, lassen Sie diese einfach aus der URL weg (z.B. 'socks5://host:port').

Vergleich der Proxy-Typen

Hier ist ein Vergleich der verschiedenen Proxy-Typen:

Merkmal HTTP-Proxy HTTPS-Proxy SOCKS-Proxy
Protokoll HTTP HTTPS SOCKS (4, 5)
Verschlüsselung Keine Verschlüsselung (es sei denn, Zielserver ist HTTPS) Verschlüsselt den Verkehr zum Proxy-Server Unterstützt Verschlüsselung (SOCKS5)
Anwendungsfälle Web-Browsing, Zugriff auf HTTP-Seiten Web-Browsing, Zugriff auf HTTPS-Seiten Vielseitig, unterstützt verschiedene Protokolle (HTTP, HTTPS, FTP usw.)
Sicherheit Weniger sicher Sicherer Sicherer (insbesondere mit SOCKS5)
Komplexität Einfach einzurichten Einfach einzurichten Kann komplexer zu konfigurieren sein
Anwendungsschicht Versteht HTTP-Protokoll Versteht HTTP-Protokoll Arbeitet auf der Transportschicht

Proxy-Rotation für Web Scraping

Beim Web Scraping ist die Rotation durch mehrere Proxys entscheidend, um eine Blockierung Ihrer IP-Adresse zu vermeiden. So können Sie die Proxy-Rotation implementieren:

import requests
import random

proxy_list = [
  'http://user1:pass1@proxy1.com:8000',
  'http://user2:pass2@proxy2.com:8001',
  'http://user3:pass3@proxy3.com:8002',
]

def get_page(url):
    proxy = random.choice(proxy_list)
    proxies = {'http': proxy, 'https': proxy}
    try:
        response = requests.get(url, proxies=proxies, timeout=10)  # Add timeout
        response.raise_for_status()
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"Error using proxy {proxy}: {e}")
        return None

url = 'https://www.example.com'
content = get_page(url)

if content:
    print("Successfully retrieved content.")
    # Process the content here
else:
    print("Failed to retrieve content.")

In diesem Beispiel:

  • Eine Liste von Proxy-Servern wird verwaltet.
  • Die Funktion random.choice() wählt für jede Anfrage einen zufälligen Proxy aus der Liste aus.
  • Ein timeout wird zur Funktion requests.get() hinzugefügt, um zu verhindern, dass das Skript unbegrenzt hängt, wenn ein Proxy nicht reagiert.
  • Fehlerbehandlung ist implementiert, um Ausnahmen abzufangen und es mit einem anderen Proxy erneut zu versuchen.

Denken Sie daran, Fehler elegant zu behandeln und eine Wiederholungslogik mit verschiedenen Proxys zu implementieren, falls eine Anfrage fehlschlägt. Erwägen Sie die Verwendung einer robusteren Proxy-Verwaltungsbibliothek für größere Scraping-Projekte.

Häufige Probleme und Fehlerbehebung

  • Proxy-Authentifizierungsfehler: Überprüfen Sie Ihren Benutzernamen und Ihr Passwort. Stellen Sie sicher, dass sie in der Proxy-URL korrekt kodiert sind.
  • Verbindungsfehler: Überprüfen Sie, ob der Proxy-Server läuft und von Ihrem Netzwerk aus zugänglich ist. Überprüfen Sie die Firewall-Einstellungen.
  • Timeouts: Erhöhen Sie den Timeout-Wert in der Funktion requests.get(). Der Standard-Timeout kann für einige Proxy-Server zu kurz sein.
  • Blockierte Anfragen: Die Ziel-Website blockiert möglicherweise die IP-Adresse des Proxy-Servers. Versuchen Sie, einen anderen Proxy oder eine rotierende Proxy-Liste zu verwenden.
  • SOCKS-Proxy-Fehler: Stellen Sie sicher, dass Sie das requests[socks]-Extra installiert haben. Überprüfen Sie, ob der SOCKS-Proxy-Server korrekt konfiguriert ist.

Fazit

Die Verwendung von Proxys mit der Python-Bibliothek requests ist eine leistungsstarke Technik für verschiedene Aufgaben, einschließlich Web Scraping, Zugriff auf geografisch eingeschränkte Inhalte und Verbesserung der Sicherheit. Indem Sie verstehen, wie man Proxys konfiguriert, die Authentifizierung handhabt und die Proxy-Rotation implementiert, können Sie Proxys effektiv in Ihren Python-Anwendungen nutzen. Denken Sie daran, Fehler elegant zu behandeln und den geeigneten Proxy-Typ für Ihre spezifischen Anforderungen zu wählen.

Aktualisiert: 26.01.2026
Zurück zur Kategorie

Testen Sie unsere Proxys

20.000+ Proxys in über 100 Ländern weltweit

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.