Wenn Sie schon eine Weile mit Python arbeiten, insbesondere im speziellen Fall des Daten-Scrapings, sind Sie wahrscheinlich auf Situationen gestoßen, in denen Sie beim Versuch, Ihre Daten abzurufen, blockiert sind wollen. In einer solchen Situation ist es hilfreich zu wissen, wie man einen Proxy verwendet.
In diesem Artikel untersuchen wir, was Proxys sind, warum sie nützlich sind und wie Sie sie mithilfe der Bibliotheksanforderung in Python verwenden können.
Beginnen wir von vorne mit der Definition, was ein Proxy ist.
Sie können sich einen Proxyserver als „Mittler“ zwischen Ihrem Computer und dem Internet vorstellen. Wenn Sie eine Anfrage an eine Website senden, wird die Anfrage zunächst über den Proxyserver geleitet. Der Proxy leitet Ihre Anfrage dann an die Website weiter, empfängt die Antwort und sendet sie an Sie zurück. Durch diesen Vorgang wird Ihre IP-Adresse maskiert, sodass es so aussieht, als käme die Anfrage vom Proxyserver und nicht von Ihrem eigenen Gerät.
Verständlicherweise hat dies viele Konsequenzen und Vorteile. Es kann beispielsweise verwendet werden, um einige lästige IP-Einschränkungen zu umgehen oder die Anonymität zu wahren.
Warum könnten Proxys beim Daten-Scraping hilfreich sein? Nun, wir haben bereits zuvor einen Grund angegeben. Sie können sie beispielsweise verwenden, um einige Einschränkungen zu umgehen.
Im speziellen Fall des Web Scrapings können sie also aus folgenden Gründen nützlich sein:
Die Requests-Bibliothek ist eine beliebte Wahl für HTTP-Anfragen in Python und die Einbindung von Proxys in Ihre Anfragen ist unkompliziert.
Mal sehen wie!
Das Wichtigste zuerst: Sie müssen gültige Proxys erhalten, bevor Sie sie tatsächlich verwenden können. Dazu haben Sie zwei Möglichkeiten:
Da Sie nun Ihre Proxy-Liste haben, können Sie mit deren Verwendung beginnen. Sie können beispielsweise ein Wörterbuch wie folgt erstellen:
proxies = { 'http': 'http://proxy_ip:proxy_port', 'https': 'https://proxy_ip:proxy_port', }
Jetzt können Sie eine Anfrage über die Proxys stellen:
import requests proxies = { 'http': 'http://your_proxy_ip:proxy_port', 'https': 'https://your_proxy_ip:proxy_port', } response = requests.get('https://httpbin.org/ip', proxies=proxies)
Um das Ergebnis Ihrer Anfrage zu sehen, können Sie die Antwort ausdrucken:
print(response.status_code) # Should return 200 if successful print(response.text) # Prints the content of the response
Beachten Sie, dass bei einem reibungslosen Ablauf die Antwort die IP-Adresse des Proxyservers anzeigen sollte, nicht Ihre.
Wenn Ihr Proxy eine Authentifizierung erfordert, können Sie dies auf verschiedene Arten handhaben.
Methode 1: Einschließen von Anmeldeinformationen in die Proxy-URL
Um den Benutzernamen und das Passwort zur Verwaltung der Authentifizierung in Ihrem Proxy einzugeben, können Sie Folgendes tun:
proxies = { 'http': 'http://username:password@proxy_ip:proxy_port', 'https': 'https://username:password@proxy_ip:proxy_port', }
Methode 2: Verwendung von HTTPProxyAuth
Alternativ können Sie die HTTPProxyAuth-Klasse verwenden, um die Authentifizierung wie folgt zu handhaben:
from requests.auth import HTTPProxyAuth proxies = { 'http': 'http://proxy_ip:proxy_port', 'https': 'https://proxy_ip:proxy_port', } auth = HTTPProxyAuth('username', 'password') response = requests.get('https://httpbin.org/ip', proxies=proxies, auth=auth)
Die Verwendung eines einzelnen Proxys reicht möglicherweise nicht aus, wenn Sie zahlreiche Anfragen stellen. In diesem Fall können Sie einen rotierenden Proxy verwenden: Dieser ändert die Proxy-IP-Adresse in regelmäßigen Abständen oder auf Anfrage.
Wenn Sie diese Lösung testen möchten, haben Sie zwei Möglichkeiten: Proxys manuell mithilfe einer Liste rotieren oder einen Proxy-Rotationsdienst verwenden.
Sehen wir uns beide Ansätze an!
Wenn Sie eine Liste mit Proxys haben, können Sie diese wie folgt manuell rotieren:
import random proxies_list = [ 'http://proxy1_ip:port', 'http://proxy2_ip:port', 'http://proxy3_ip:port', # Add more proxies as needed ] def get_random_proxy(): proxy = random.choice(proxies_list) return { 'http': proxy, 'https': proxy, } for i in range(10): proxy = get_random_proxy() response = requests.get('https://httpbin.org/ip', proxies=proxy) print(response.text)
Dienste wie ScraperAPI übernehmen die Proxy-Rotation für Sie. Normalerweise müssen Sie nur die von ihnen bereitgestellte Proxy-URL aktualisieren und ein URL-Wörterbuch wie folgt verwalten:
proxies = { 'http': 'http://your_service_proxy_url', 'https': 'https://your_service_proxy_url', } response = requests.get('https://httpbin.org/ip', proxies=proxies)
Die Verwendung eines Proxys in Python ist eine wertvolle Technik zum Web-Scraping, Testen und Zugriff auf geografisch eingeschränkte Inhalte. Wie wir gesehen haben, ist die Integration von Proxys in Ihre HTTP-Anfragen mithilfe der Bibliotheksanfragen ganz einfach.
Ein paar Abschiedstipps beim Scrapen von Daten aus dem Web:
Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Proxys in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!