Zum Inhalt

Die vollständige Anleitung zur Verwendung von Proxys mit Python-Anfragen

Wenn Sie Python-Scraper oder -Crawler schreiben, sollte die Konfiguration der Proxy-Unterstützung ganz oben auf Ihrer Liste stehen. Mithilfe von Proxys können Sie Ihre Anfragen über Zwischenserver weiterleiten und so Ihren tatsächlichen Standort verbergen. Dies eröffnet viele Möglichkeiten, z. B. das Scrapen von Websites in großem Maßstab, ohne blockiert zu werden, oder den Zugriff auf Inhalte, die auf bestimmte Regionen beschränkt sind.

In diesem umfassenden Leitfaden behandle ich alles, was Sie wissen müssen, um Proxys mit dem Anforderungsmodul von Python zu verwenden. Ich erkläre, warum Proxys nützlich sind, wie sie funktionieren, wo man sie bekommt, Best Practices für Authentifizierung und Sicherheit und wie man Proxy-Rotation implementiert. Machen Sie mit und ich mache Sie zum Proxy-Profi!

Warum Proxys für Python-Scraper unerlässlich sind

Schauen wir uns zunächst an, warum Proxys für Python-Scraper so wichtig sind:

Vermeiden Sie Blockierungen beim Schaben

Der Hauptgrund für die Verwendung von Proxys bei Python-Anfragen ist die Vermeidung von IP-Verboten. Viele Websites verfügen über Schutzmaßnahmen, um Scraper und Bots zu blockieren. Sie können eine bestimmte Anzahl von Anfragen pro Minute von einer bestimmten IP zulassen, bevor sie diese auf die schwarze Liste setzen.

Durch das Scrapen aus einem rotierenden Pool von Proxyservern sehen Sie aus wie viele verschiedene Benutzer. Websites werden es schwerer haben, Sie zu erkennen und zu blockieren, als wenn sie von einer einzelnen privaten IP-Adresse aus zugreifen.

Um Ihnen einen Eindruck von der Größenordnung zu vermitteln: Eine Website kann 60–100 Anfragen pro Minute und IP zulassen, bevor ein Verbot ausgelöst wird. Mit nur einer Handvoll Proxys können Sie Ihre Scraping-Kapazität problemlos verzehnfachen. Proxys ermöglichen Skalierbarkeit.

Greifen Sie auf geobeschränkte Inhalte zu

Ein weiterer Vorteil von Proxys besteht darin, dass sie auf Inhalte zugreifen können, die auf bestimmte Regionen beschränkt sind. Beispielsweise ist der Video-Streaming-Dienst BBC iPlayer nur für Einwohner des Vereinigten Königreichs verfügbar. Indem Sie Ihren Datenverkehr über einen britischen Proxy leiten, können Sie die Website so betrachten, als wären Sie in London.

Weitere prominente Beispiele sind Hulu (nur USA), Channel 4 (Großbritannien) und NHK World (Japan). Proxys bieten Ihnen die Möglichkeit, von überall aus auf regional begrenzte Inhalte zuzugreifen.

Anonymität und Sicherheit

Das Verbergen Ihrer echten IP-Adresse erhöht auch die Privatsphäre beim Scraping. Websites können Anfragen nicht einfach auf Ihren Standort oder Ihre Identität zurückführen.

Bedrohungsakteure können auch Proxys nutzen, um Angriffe zu verschleiern, aber das sprengt hier den Rahmen. Wir konzentrieren uns auf die positiven Aspekte der Verbesserung der Privatsphäre und Anonymität beim Web Scraping.

Skalieren Sie Python-Scraper

Mit Proxys können Sie deutlich mehr parallele Anfragen stellen, da Sie nicht durch die Kapazität einer einzelnen privaten IP-Adresse eingeschränkt sind.

Anstatt Threading-Grenzwerte zu erreichen oder mit einer einzelnen IP blockiert zu werden, können Sie Anfragen über mehrere Proxys weiterleiten, um die Anzahl der Anfragen pro Minute zu vervielfachen.

Wenn jeder Proxy 60 Anforderungen/Min. zulässt, würden Ihnen 4 Proxys eine Kapazität für 240 Anforderungen/Min. bieten. 10 Proxys skalieren auf 600 Anforderungen/Min. Proxys sind für die Erstellung verteilter Scraper mit hohem Volumen in Python unerlässlich.

Nachdem Sie nun gesehen haben, warum Proxys nützlich sind, wollen wir uns mit den Details ihrer Funktionsweise befassen …

So funktionieren Proxys: Anonymisierung Ihrer Anfragen

Proxys fungieren als Vermittler für Anfragen zwischen Ihnen und dem Zielserver:

Wie Proxys funktionieren

Anstatt eine direkte Verbindung von Ihrer IP zur Zielseite herzustellen, werden Ihre Anfragen zunächst über den Proxyserver weitergeleitet. Dadurch wird Ihre echte IP vom Ziel verschleiert.

Dies funktioniert, indem Sie Ihre HTTP-Anfragen so konfigurieren, dass sie die IP-Adresse des Proxys anstelle Ihrer eigenen verwenden. Wir werden später genau darauf eingehen, wie man dies in Python konfiguriert.

Einige wichtige Hinweise zur Funktionsweise von Proxys:

  • Der Proxy verfügt über eine eigene eindeutige IP-Adresse, von der der Datenverkehr zu kommen scheint. Dadurch wird Ihre echte IP ausgeblendet und durch die des Proxys ersetzt.

  • Für zusätzliche Anonymität können Proxys miteinander verkettet werden. Sie können den Datenverkehr über mehrere Proxys weiterleiten, um die Herkunft weiter zu verschleiern.

  • Proxy-Protokolle wie HTTP und SOCKS den Durchgangsverkehr bewältigen. Dies wird auf der Anwendungsebene für Anfragen konfiguriert.

Nachdem Sie nun verstanden haben, wie Proxys grundsätzlich funktionieren, gehen wir die verschiedenen verfügbaren Proxy-Typen durch.

HTTP vs SOCKS Proxies

Die beiden wichtigsten Proxy-Protokolle sind HTTP und SOCKS. Vergleichen wir sie:

HTTP Proxies

HTTP-Proxys sind der am häufigsten vorkommende Typ. Einige Schlüsselattribute:

  • Funktioniert nur für HTTP/HTTPS-Verkehr (nicht niedrigeres TCP/UDP)
  • Einfach einzurichten – kompatibel mit den meisten Bibliotheken und Tools
  • Wird normalerweise für Web Scraping und allgemeinen Webzugriff verwendet

HTTP-Proxys fangen im Wesentlichen HTTP-Anfragen des Clients ab und leiten sie an das Ziel weiter. Sie sind nur auf HTTP-Verkehr beschränkt.

SOCKS Proxies

SOCKS ist ein Proxy-Protokoll mit umfassenderem Funktionsumfang, das auf niedrigeren Netzwerkschichten betrieben wird.

Einige Features:

  • Funktioniert für jeden TCP-Verkehr, einschließlich HTTP, HTTPS, FTP usw.
  • Authentifizierungs- und Sicherheitsfunktionen hinzugefügt wie Benutzername/Passwort-Authentifizierung.
  • Wird normalerweise für vollständigen Netzwerkzugriff und Anonymität verwendet.

Während HTTP-Proxys nur auf Anwendungsebene funktionieren, SOCKS sitzt tiefer auf der Netzwerk-/Transportschicht. Dies erlaubt SOCKS um so ziemlich jeden TCP-Verkehr als Proxy zu verwenden.

Welche sollten Sie verwenden?

Für die meisten Web-Scraping-Anwendungsfälle ist ein HTTP-Proxy völlig ausreichend. Die Einrichtung ist einfacher und Sie kümmern sich nur darum, Ihre HTTP-Anfragen über Proxys zu leiten.

Wenn Sie vollständiges Netzwerkzugriffsrouting für Datenverkehr auf niedrigerer Ebene über HTTP hinaus benötigen, verwenden Sie SOCKS stattdessen. SOCKS ist auch besser, wenn Sie Wert auf zusätzliche Sicherheit legen und eine Authentifizierung benötigen.

Für unsere Anwendungen, die sich auf Python-Webscraper konzentrieren, sind HTTP-Proxys perfekt geeignet. Schauen wir uns nun an, wo man Proxy-Server erhält.

Wo man Proxys für Web Scraping bekommt

Es gibt einige Hauptmethoden zum Erwerb von Proxys zur Verwendung mit Python-Anfragen:

1. Kaufen Sie Proxys von einem Proxy-Anbieter

Am einfachsten ist es, Proxys von einem Proxy-Dienst zu erwerben. Zu den Top-Anbietern gehören:

  • Helle Daten – Insgesamt mein Lieblingsanbieter mit hochwertigen Privat-IPs weltweit. Schnelle Verbindungen und zuverlässige Betriebszeit.

  • Oxylabs – Für alle Regionen verfügbare Rechenzentrums-Proxys zur Unterstützung großer Volumina. Erschwingliche Preise.

  • GeoSurf – Spezialisiert auf private Proxys für bestimmte Länder, um auf geografisch eingeschränkte Inhalte zuzugreifen.

Je nach Qualität und Standort des Anbieters müssen Sie mit einer monatlichen Zahlung von etwa 1 bis 5 US-Dollar pro Proxy rechnen. Proxy-Service-APIs erleichtern das Laden von Listen neuer Proxys zur Integration in Ihren Code.

2. Suchen Sie nach öffentlich verfügbaren Proxys

Sie können öffentliche Proxys auch kostenlos online finden. Beachten Sie, dass diese von geringerer Qualität sind, da sie geteilt werden. Öffentliche Proxys werden häufig genutzt und gehen oft offline.

Nützliche Orte, um öffentliche Proxys zu finden:

Ich empfehle nicht, sich ausschließlich auf öffentliche Proxys zu verlassen, aber sie können im Notfall kostenpflichtige Proxys ergänzen. Erwarten Sie geringere Betriebszeiten/Geschwindigkeiten.

3. Stellen Sie Ihre eigenen Proxys bereit

Sie können auch Ihre eigenen privaten Proxys erstellen, indem Sie Proxyserver auf Infrastrukturen wie rotierenden IP-Adressen für Privathaushalte, Cloud-Instanzen oder VPNs bereitstellen.

Dies gibt Ihnen die Kontrolle, erfordert jedoch mehr Aufwand für die Konfiguration und Wartung von Proxyservern. Normalerweise würden Sie der Einfachheit halber stattdessen die Proxy-Bereitstellung an einen Anbieter auslagern.

Zusammenfassend empfehle ich den Kauf von Proxys von einem seriösen Anbieter wie BrightData, sofern das Budget nicht stark eingeschränkt ist. Die Zuverlässigkeit und Qualität übertrifft den Umgang mit kniffligen öffentlichen Proxys.

Lassen Sie uns als Nächstes in den Code eintauchen, um zu sehen, wie Python-Anfragen mithilfe von Proxys konfiguriert werden …

Festlegen eines Proxys – Beispiele für Python-Anfragen

Python-Anfragen machen es einfach, Ihren Datenverkehr über Proxyserver zu leiten.

Sie geben Proxys an, indem Sie eine erstellen proxies Diktat, das URL-Schemata Proxy-URLs zuordnet:

proxies = {
  ‘http‘: ‘http://10.10.1.10:3128‘,
  ‘https‘: ‘http://10.10.1.10:1080‘ 
}

Übergeben Sie dann dieses Proxy-Dikt, wenn Sie Anfragen stellen:

response = requests.get(‘https://example.com‘, proxies=proxies)

Dadurch werden alle HTTP- und HTTPS-Anfragen über die angegebenen Proxys weitergeleitet.

Sie können Proxys auch global für alle Anfragen oder pro Anfrage festlegen. Schauen wir uns Beispiele für verschiedene Proxy-Konfigurationen mit Python-Anfragen an.

Globaler Proxy für alle Anfragen

Um einen Proxy global auf alle über die Anforderungssitzung gestellten Anforderungen anzuwenden, legen Sie das Proxy-Dikt auf Sitzungsebene fest:

import requests

session = requests.Session() 

proxies = {
  ‘http‘: ‘http://10.10.1.10:3128‘,
  ‘https‘: ‘http://10.10.1.10:1080‘  
}

session.proxies = proxies

response = session.get(‘https://example.com‘) 
# Uses HTTP proxy http://10.10.1.10:3128

Sie können dies auch tun, indem Sie die Umgebungsvariablen festlegen HTTP_PROXY machen HTTPS_PROXY bevor Sie Ihr Skript ausführen.

Proxy pro Anfrage

Um einen Proxy nur für eine bestimmte Anfrage zu verwenden, übergeben Sie das Proxy-Dikt als Parameter nur für diesen Aufruf:

import requests 

response = requests.get(‘https://example.com‘) # no proxy

proxied_response = requests.get(‘https://example.com‘, proxies={
  ‘http‘: ‘http://10.10.1.10:3128‘,
  ‘https‘: ‘http://10.10.1.10:1080‘ 
}) # uses proxy

Dies überschreibt den globalen Proxy nur für diese eine Anfrage.

Proxy für eine bestimmte Domäne

Um den Datenverkehr nur für bestimmte Domänen weiterzuleiten, geben Sie die Domäne in Ihrem Proxy-Dikt an:

proxies = {
   ‘http://scrape-site.com‘: ‘http://10.10.1.10:3128‘,
   ‘https://api.example.com‘: ‘http://10.10.1.10:1080‘, 
}

requests.get(‘http://scrape-site.com/‘, proxies=proxies) # uses proxy
requests.get(‘http://no-proxy-domain.com‘, proxies=proxies) # no proxy

Dies ermöglicht eine detaillierte Kontrolle darüber, welche Websites Proxys verwenden und welche nicht.

Nachdem Sie nun wissen, wie Sie Proxys anwenden, besprechen wir nun, wie Sie sich mit Proxys authentifizieren …

Authentifizierung mit Proxys

Viele Proxys erfordern eine Authentifizierung, um sie verwenden zu können. Dazu müssen Sie Benutzername/Passwort-Anmeldeinformationen in Ihren Proxy-URLs übergeben.

Hier ist ein Beispiel für eine HTTP-Proxy-URL mit Authentifizierung:

http://myusername:[email protected]:8080

Ganz einfach, aber es gibt eine zusätzliche Überlegung, wenn Ihr Benutzername oder Ihr Passwort Sonderzeichen enthält.

Viele Sonderzeichen mögen @ machen : sind in der grundlegenden URL-Syntax ungültig. Um diese Fälle zu bearbeiten, müssen wir URL-Codierung die Zeugnisse mit dem urllib Bibliothek:

from urllib.parse import quote

username = ‘[email protected]‘
password = ‘pass#123‘

proxy_url = f‘http://{quote(username)}:{quote(password)}@123.45.6.7:8080‘

Dadurch werden diese Werte ordnungsgemäß codiert, sodass sie in der URL übergeben werden können.

Jetzt können Ihre Anmeldeinformationen Sonderzeichen enthalten und Sie können sich erfolgreich authentifizieren.

Wenn das geklärt ist, lasst uns mit der Diskussion rotierender Proxys fortfahren …

Rotierende Proxys zur Vermeidung von Verboten

Beim Scraping von Websites sollten Sie Ihre Anfragen über mehrere Proxy-IPs rotieren lassen. Dies verhindert, dass Sie von Websites gesperrt werden, weil Sie zu viele Anfragen von einer einzelnen IP stellen.

Hier ist eine Möglichkeit, die Proxy-Rotation in Python zu implementieren:

import requests 
from random import choice

proxy_list = [
  ‘http://123.45.6.7:8080‘,
  ‘http://98.76.54.3.2:8080‘,
  ‘http://103.47.99.2:8080‘  
]

for _ in range(10):

  proxy = choice(proxy_list)

  response = requests.get(‘https://example.com‘, proxies={
      ‘http‘: proxy,
      ‘https‘: proxy
  })

  # Do something with response...

Wir führen eine Liste von Proxy-URLs. Vor jeder Anfrage wählen wir mithilfe von Python zufällig einen Proxy aus random.choice(). Dadurch werden die Proxys bei jeder Anfrage rotiert.

Sie können Ihre Proxy-Liste aus einer Datei, einer Proxy-API, einer Datenbank oder einer anderen Quelle laden. Aktualisieren Sie es regelmäßig, um neue Proxys einzuschalten, wenn die alten kaputt gehen.

Verwenden Sie idealerweise mindestens 10 Proxys und ändern Sie diese aus Sicherheitsgründen mindestens alle 100 Anfragen. Je mehr desto besser.

Stellen Sie sicher, dass Sie eine ähnliche Proxy-Rotation in Ihren Produktions-Scrapern implementieren, um unter dem Radar zu bleiben.

Abschließende Gedanken zu Proxys mit Python-Anfragen

Und da haben Sie es – eine umfassende Anleitung zur Verwendung von Proxys mit dem Anforderungsmodul von Python!

Wir haben die Bedeutung von Proxys für Python-Web-Scraper behandelt, wie sie unter der Haube funktionieren, wo man Proxys erhält, wie man Anfragen für die Verwendung von Proxys, Authentifizierung und Proxy-Rotationsmuster konfiguriert.

Proxys sind von entscheidender Bedeutung für das erfolgreiche Scraping von Websites in großem Maßstab und die Vermeidung von IP-Verboten. Mit den hier beschriebenen Techniken können Sie Proxys wie ein Profi nutzen!

Weitere Informationen zur Proxy-Nutzung finden Sie im fordert Dokumentation an. Machen Sie jetzt weiter und nutzen Sie Ihre neu entdeckten Stellvertreterkräfte für immer! Lassen Sie mich wissen, wenn Sie weitere Proxy-Fragen haben.

Stichworte:

Mitreden

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *