Verwendung eines Proxys mit Python Requests

Bemerkungen: 0

Kurz gesagt sind Proxies Server, die als äußere Schicht dienen und eine Verbindung zu Netzwerkdiensten herstellen. Sie dienen als Vermittler zwischen einem Computer und der Website, von der ein Nutzer Informationen abrufen möchte. Die Anfrage des Nutzers wird nicht direkt an die betreffende Website weitergeleitet, sondern zunächst an den Proxy, der sie dann an den Endserver weiterleitet. Die IP-Adresse des Proxy-Servers ist also diejenige, die die Website speichert, und nicht die des Nutzers.

Warum also einen Proxy verwenden?

  • Anonymität:

Zum Beispiel, wenn es notwendig ist, Informationen von einer Website zu sammeln, ohne Angst vor Einschränkungen oder Sperren zu haben. Ein Proxy hilft dabei, die IP-Adresse des echten Nutzers zu verschleiern und seine wahre digitale Identität zu ändern.

  • Umgehung von Beschränkungen:

Es kann ein Proxy aus einem bestimmten Land verwendet werden, in dem es keine Einschränkungen gibt. Dies liegt daran, dass in bestimmten Ländern der Zugang zu einigen Programmen und Websites eingeschränkt oder gesperrt ist.

  • Lastausgleich:

Wenn eine große Anzahl von Anfragen an eine bestimmte Website gesendet wird, besteht die Gefahr, dass das System überlastet wird. Folglich besteht ein großes Risiko, blockiert zu werden. Die gleichzeitige Verwendung mehrerer Proxys ermöglicht es den Nutzern, die Anfragen an eine bestimmte Website gleichmäßig zu verteilen und so eine Blockierung zu vermeiden.

Einrichten und Installieren von Python Requests

Requests ist die Bibliothek zum Senden von HTTP-Anfragen mit Python. Sie macht es einfach, GET- und POST-Anfragen zu stellen. Die Verwendung von Python Requests ohne Proxy kann HTTP-Anfragen senden, bietet aber keine Anonymität und umgeht keine Einschränkungen.

1. Installation der Requests Bibliothek

Um Requests zu installieren, geben Sie einfach den folgenden Befehl in das Terminal ein:


pip install requests

2. Überprüfung der Installation

Um zu überprüfen, ob die erforderliche Bibliothek richtig eingerichtet ist, müssen Sie die Python-Entwicklungsumgebung öffnen und den Befehl ausführen:


import requests 

print(requests.__version__)

Wenn alles richtig gemacht wurde, wird das Skript die Versionsnummer zurückgeben.

Proxy verwenden mit Python Requests

Nach der Installation der Request-Bibliothek können wir mit der Ausführung von HTTP-Anfragen beginnen. Um einen Proxy einzubinden, müssen jedoch bestimmte Konfigurationen in Python vorgenommen werden.

Untersuchen wir die Schritte, die zur korrekten Konfiguration eines Proxys für Anfragen in Python erforderlich sind. Wir werden die Konfiguration von Python-Requests mit SOCKS-Proxys separat betrachten.

1. Konfigurieren des Proxy-Servers

Die Verwendung von Python zur Einrichtung eines Proxys ist für Benutzer, die die requests-Bibliothek verwenden, sehr einfach. Dazu muss die Adresse des Proxy-Servers in einem Wörterbuch übergeben und dann bei HTTP-Anfragen verwendet werden.


proxies = {
    "http": "http://your-proxy-ip:port",
    "https": "http://your-proxy-ip:port",
}

response = requests.get("http://example.com", proxies=proxies)

2. Proxy-Authentifizierung

Bei der Verwendung von Python Requests ist die Proxy-Authentifizierung einfach einzurichten. Werfen wir einen genaueren Blick auf die Details.


proxies = { 
    "http": "http://username:password@your-proxy-ip:port", 
    "https": "http://username:password@your-proxy-ip:port", 
} 

response = requests.get("http://example.com", proxies=proxies)

Die beiden neuen Felder, die ausgefüllt werden müssen, sind:

  • username – Proxy-Benutzername;
  • password – Proxy-Passwort.

3. Verwendung von SOCKS-Proxies

Für Benutzer, die ein höheres Maß an Anonymität benötigen, oder wenn Sie mit stark eingeschränkten Websites arbeiten, funktionieren Standard-HTTP-Proxys möglicherweise nicht. In diesem Fall sind SOCKS-Proxys möglicherweise besser geeignet.

Um die SOCKS-Proxy-Unterstützung zu aktivieren, muss eine zusätzliche Bibliothek mit dem unten aufgeführten Befehl installiert werden:


pip install requests[socks]

Nach der Installation können Sie mit Python Requests einen SOCKS-Proxy einrichten, der wie im unten stehenden Beispiel verwendet werden kann.


import requests

proxies = {
    "http": "socks5h://your-proxy-ip:port",
    "https": "socks5h://your-proxy-ip:port",
}

response = requests.get("http://example.com", proxies=proxies)

Wenn der Proxyserver eine Authentifizierung benötigt, fügen Sie diese wie unten gezeigt ein.


proxies = {
    "http": "socks5h://username:password@your-proxy-ip:port",
    "https": "socks5h://username:password@your-proxy-ip:port",
}

Sitzungsverwaltung mit Proxys in Python-Requests

Wenn viele Anfragen über einen einzigen Proxy gestellt werden, ist es viel effizienter, Python Requests-Sitzungen mit Proxy zu verwenden, anstatt ihn zu jeder Anfrage hinzuzufügen.

Diese Methode der Verwendung von Proxys hilft dabei, die Einstellungen über alle Sitzungen hinweg beizubehalten. Außerdem vereinfacht sie den Code, verbessert die Leistung und macht vor allem die Implementierung viel einfacher.

1. Verwendung von Python-Request-Sitzungen mit Proxys

Es ist sehr einfach, eine Sitzung zu erstellen, geben Sie einfach requests.Session() ein.

Betrachten Sie das folgende Beispiel:


import requests

# Erstellen einer Sitzung
session = requests.Session()

session.proxies = {
    "http": "http://username:password@your-proxy-ip:port",
    "https": "http://username:password@your-proxy-ip:port",
}

# Anfrage über die Sitzung
response = session.get("http://example.com")

Alle Python-Requests innerhalb dieser Sitzung verwenden standardmäßig den eingestellten Proxy, ohne dass zusätzliche Konfigurationen erforderlich sind.

2. Behandlung mehrerer Proxies in Python Requests

When you are actively engaging with a website either for scraping purposes or for automation, using the same proxy over and over again can get your account blocked. This is manageable by rotating proxies given you have a few different proxy servers.

The following example shows the implementation of a loop that rotates proxies for each interaction with the web page:


import requests
import random

proxies_list = [
    "http://username:password@your-proxy-ip[1]:port",
    "http://username:password@your-proxy-ip[2]:port",
    "http://username:password@your-proxy-ip[3]:port",
]

session = requests.Session()

for _ in range(5):
    proxy = random.choice(proxies_list)  # Zufällige Auswahl eines Proxys
    session.proxies = {"http": proxy, "https": proxy}

    response = session.get("http://example.com")
    print(f"Used proxy: {proxy}")
    print(response.status_code)

Schlussfolgerung

Im Folgenden finden Sie einige Vorschläge, die Ihnen helfen können, Proxys besser zu verwalten:

  • Verwenden Sie Sitzungen, damit Sie nicht bei jeder Anfrage einen Proxy setzen müssen.
  • Verwenden Sie zum besseren Schutz anonyme Proxys ohne Protokollierung.
  • Um eine Blockierung zu vermeiden, sollten Sie mehrere Proxys verwenden.

In diesem Artikel haben wir uns damit beschäftigt, was Proxy-Server sind, wie man Proxys in Python Requests richtig einsetzt und Proxys über Sitzungen verwaltet, um den Code zu vereinfachen. Das Beispiel zeigt auch die Verwendung von SOCKS- und regulären Proxys, wie die Authentifizierung gehandhabt wird und die Proxy-Verwaltung.

Bemerkungen:

0 Bemerkungen