Wie man einen Proxy-Server mit Python-Anfragen Modul verwenden - Ultimative Anleitung

Ștefan Răcila am 20. April 2023

blog-image

Einführung

Web Scraping ist ein leistungsfähiges Werkzeug, mit dem Sie wertvolle Informationen aus Websites extrahieren können. Es kann jedoch auch die Server der Websites, die Sie auslesen, belasten, weshalb viele Websites IP-Adressen sperren, die zu viele Anfragen stellen. Um dies zu vermeiden, können Sie für Ihre Anfragen Proxys verwenden. In diesem Artikel zeige ich Ihnen, wie Sie Python mit Proxys verwenden und wie Sie Proxy-IPs rotieren können, um nicht blockiert zu werden.

Einrichten

Bevor wir beginnen, müssen Sie die folgenden Voraussetzungen erfüllen:

✅ Python installiert

✅ Einige Erfahrung mit Python

✅ Python-Anforderungsbibliothek ebenfalls installiert

Eine Liste von Proxy-IPs und Ports

Um Python zu installieren, müssen Sie das Python-Installationsprogramm von der offiziellen Python-Website herunterladen: https://www.python.org/downloads/

Sie können die neueste Version von Python 3 wählen. Es wird empfohlen, die neueste Version von Python zu verwenden, um die neuesten Funktionen und Sicherheitsupdates zu erhalten.

Sobald der Download abgeschlossen ist, führen Sie das Installationsprogramm aus und folgen Sie den Aufforderungen, um Python auf Ihrem Computer zu installieren. Achten Sie während des Installationsvorgangs darauf, dass Sie die Option aktivieren, Python zum PATH Ihres Systems hinzuzufügen, damit Sie Python von der Kommandozeile aus ausführen können.

Nachdem die Installation abgeschlossen ist, können Sie überprüfen, ob Python korrekt installiert wurde, indem Sie eine Eingabeaufforderung oder ein Terminal öffnen und den Befehl `python --version` ausführen. Dies sollte die Version von Python anzeigen, die Sie installiert haben.

Sie können überprüfen, ob das Paket `python-requests` installiert ist, indem Sie das Terminal öffnen und den folgenden Befehl ausführen:

$ pip freeze

`pip` ist ein Paketmanager, der mit neueren Versionen von Python mitgeliefert werden sollte. Wenn Sie `pip` aus irgendeinem Grund separat installieren müssen, können Sie den Anweisungen in dieser Anleitung folgen.

`pip freeze` zeigt alle derzeit installierten Python-Pakete und deren Versionen an. Prüfen Sie, ob das Modul `requests` in dieser Liste vorhanden ist. Wenn nicht, installieren Sie es, indem Sie den folgenden Befehl ausführen:

$ pip install requests

Konfiguration der Bevollmächtigten

In diesem Abschnitt erkläre ich, wie man Proxys mit `python-requests` einrichtet. Um loszulegen, brauchen wir einen funktionierenden Proxy und die URL, an die wir die Anfrage schicken wollen.

Grundlegende Verwendung

import requests

proxies = {

'http': 'http://proxy_ip:proxy_port',

'https': 'http://secure_proxy_ip:proxy_port',

}

res = requests.get('https://httpbin.org/get', proxies=proxies)

Wenn Sie keinen privaten Proxy haben, den Sie zum Testen dieses Codes verwenden können, können Sie einen kostenlosen öffentlichen Proxy aus der Liste auf freeproxylists.net finden. Bitte beachten Sie, dass die Proxys auf dieser Seite nicht für den Einsatz in einer Produktionsumgebung geeignet sind und möglicherweise nicht zuverlässig sind.

Das Wörterbuch "proxies" muss genau so aufgebaut sein wie im Codebeispiel gezeigt. Sie geben einen Proxy an, der für HTTP-Verbindungen verwendet werden soll, und einen Proxy, der für HTTPS-Verbindungen verwendet werden soll. Die Proxies können unterschiedlich sein oder auch nicht. Sie können denselben Proxy für mehrere Protokolle verwenden.

Beachten Sie auch, dass ich in der Proxy-URL für beide Verbindungen das HTTP-Schema verwendet habe. Nicht alle Proxys haben ein SSL-Zertifikat. Die Verbindung zum Proxy wird in beiden Fällen über HTTP hergestellt.

Um sich bei einem Proxy zu authentifizieren, können Sie diese Syntax verwenden:

http://user:pass@working-proxy:port

Umgebungsvariablen

Wenn Sie nicht vorhaben, mehrere Sätze von Proxys zu verwenden, können Sie sie als Umgebungsvariablen exportieren.

So exportieren Sie Umgebungsvariablen auf der Linux-Shell

$ export HTTP_PROXY='http://proxy_ip:proxy_port'

$ export HTTP_PROXYS='http://secure_proxy_ip:proxy_port'

Um die Umgebung zu überprüfen, führen Sie einfach

$ env

So exportieren Sie Umgebungsvariablen in PowerShell

>_ $Env:HTTP_PROXY='http://proxy_ip:proxy_port'

>_ $Env:HTTP_PROXYS='http://secure_proxy_ip:proxy_port'

Um die Umgebung zu überprüfen, führen Sie einfach

>_ Get-ChildItem -Path Env:

So exportieren Sie Umgebungsvariablen über die Eingabeaufforderung

\> set HTTP_PROXY='http://proxy_ip:proxy_port'

\> set HTTP_PROXYS='http://secure_proxy_ip:proxy_port'

Um die Umgebung zu überprüfen, führen Sie einfach

\> einstellen

Auf diese Weise brauchen Sie in Ihrem Code keine Proxys zu definieren. Stellen Sie einfach die Anfrage und es wird funktionieren.

Wie ist die Antwort zu lesen?

Sie können Ihre Daten auf viele Arten lesen, aber in den meisten Fällen werden Sie sie als reinen Text oder als JSON-kodierten String lesen wollen.

Klartext:

response = requests.get(url)

text_resp = response.text

JSON, für JSON-formatierte Antworten bietet das Paket requests eine integrierte Methode.

response = requests.get(url)

json_resp = response.json()

Proxy-Sitzungen

Möglicherweise möchten Sie auch Daten von Websites abrufen, die Sitzungen verwenden. In diesem Fall müssen Sie ein Sitzungsobjekt erstellen. Erstellen Sie zunächst eine Variable mit dem Namen `Session` und weisen Sie sie der Methode `Session()` der Anfrage zu. Nun müssen Sie die Proxies dem Attribut `.proxies` der Sitzung zuweisen. Dann senden Sie Ihre Anfrage unter Verwendung des bereits erstellten `Session`-Objekts. Dieses Mal müssen Sie nur die URL als Argument übergeben.

import requests

session = requests.Session()

session.proxies = {

'http': 'http://proxy_ip:proxy_port',

'https': 'http://secure_proxy_ip:proxy_port',

}

res = session.get('https://httpbin.org/get')

Stellen Sie sicher, dass Sie `proxy_ip` und `proxy_port` durch die tatsächliche IP und den Port Ihres Proxys ersetzen.

Wie man Proxy-IPs rotiert

Um zu vermeiden, dass Websites blockiert werden, ist es wichtig, die Proxy-IPs zu wechseln. Eine Möglichkeit, dies zu tun, ist die Erstellung einer Liste von Proxy-IPs und Ports und die zufällige Auswahl von Proxys, während Sie Anfragen stellen.

Hier ist ein Beispiel:

def proxy_request(url, **kwargs):

while True:

try:

proxy = random.randint(0, len(ip_addresses) - 1)

proxies = {

'http': ip_addresses(proxy),

'https': ip_addresses(proxy)

}



response = requests.get(url, proxies=proxies, timeout=5, **kwargs)

print(f"Currently using proxy: { proxy['http'] }")

break

except:

print("Error encoutered, changing the proxy...")

return response

print(proxy_request('https://httpbin.org/get'))

Einen Profi engagieren

Sie können zwar mit Python eigene Proxys erstellen, aber das ist ein zeitaufwändiger Prozess, und es kann viel Zeit und Geld kosten, einen guten Satz von Proxys zu erhalten. Um Zeit und Geld zu sparen, können Sie ein professionelles Scraping-Tool verwenden. WebScrapingAPI verfügt über integrierte Proxy-Verwaltungs- und Rotationsfunktionen. Wir verfügen über einen Pool verifizierter und qualitativ hochwertiger Proxys, die zuverlässiger sind und Ihnen auf lange Sicht Zeit und Geld sparen können.

Wir haben auch einen Proxy-Modus, den Sie kostenlos testen können. Um einen kostenlosen API-Schlüssel zu erhalten, müssen Sie nur ein Konto erstellen und die WebScrapingAPI-Testversion starten. Dies ist ein Code-Beispiel, wie Sie unseren Proxy-Modus verwenden können:

import requests

def get_params(object):

params = ''

for key,value in object.items():

if list(object).index(key) < len(object) - 1:

params += f"{key}={value}."

else:

params += f"{key}={value}"

return params

API_KEY = '<YOUR_API_KEY>'

TARGET_URL = 'http://httpbin.org/get'

PARAMETERS = {

"proxy_type":"datacenter",

"device":"desktop"

}

PROXY = {

"http": f"http://webscrapingapi.{ get_params(PARAMETERS) }:{ API_KEY }@proxy.webscrapingapi.com:80",

"https": f"https://webscrapingapi.{ get_params(PARAMETERS) }:{ API_KEY }@proxy.webscrapingapi.com:8000"

}

response = requests.get(

url=TARGET_URL,

proxies=PROXY,

verify=False

)

print(response.text)

Bitte beachten Sie, dass Ihr Code so konfiguriert sein muss, dass er SSL-Zertifikate nicht verifiziert, wenn Sie eine Verbindung zum Proxy-Modus über https herstellen wollen. In diesem Fall wäre es `verify=False`, da Sie mit Python Requests arbeiten.

Zum Mitnehmen

Die Verwendung von Proxys ist ein wirksames Mittel, um zu vermeiden, dass Sie beim Web-Scraping blockiert werden. Indem Sie die Proxy-IPs rotieren lassen und einen Pool von Proxys verwenden, können Sie das Risiko, blockiert zu werden, verringern und die Erfolgsaussichten erhöhen. Die Verwaltung Ihrer eigenen Proxys kann jedoch mühsam sein, und es kann viel Zeit und Geld kosten, einen guten Satz von Proxys zu bekommen.

Wenn Sie einen Premium-Proxy-Dienst wie WebScrapingAPI abonnieren, erhalten Sie Zugang zu einer Vielzahl von Funktionen, wie z. B. IP-Rotation und die Möglichkeit, zwischen Rechenzentrums- und Privatkunden-Proxys zu wechseln.

Wir hoffen, dass dieser Artikel Ihnen ein besseres Verständnis dafür vermittelt hat, wie Sie einen Proxy mit HttpClient verwenden können und wie er Ihnen bei Ihren Scraping-Anforderungen helfen kann. Melden Sie sich für unsere 14-tägige kostenlose Testversion an, um unseren Service zu testen und alle seine Funktionen kennenzulernen.

Nachrichten und Aktualisierungen

Bleiben Sie auf dem Laufenden mit den neuesten Web Scraping-Anleitungen und Nachrichten, indem Sie unseren Newsletter abonnieren.

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Ähnliche Artikel

Vorschaubild
LeitfädenWie man Amazon-Produktdaten scrappt: Ein umfassender Leitfaden zu Best Practices & Tools

Entdecken Sie die Komplexität des Scrapens von Amazon-Produktdaten mit unserem ausführlichen Leitfaden. Von Best Practices und Tools wie der Amazon Scraper API bis hin zu rechtlichen Aspekten erfahren Sie, wie Sie Herausforderungen meistern, CAPTCHAs umgehen und effizient wertvolle Erkenntnisse gewinnen.

Suciu Dan
Autorenavatar
Suciu Dan
15 Minuten lesen
Vorschaubild
AnwendungsfälleEntfesseln Sie die Macht der Finanzdaten: Erkundung traditioneller und alternativer Daten

Eintauchen in die transformative Rolle von Finanzdaten bei der Entscheidungsfindung in Unternehmen. Verstehen Sie traditionelle Finanzdaten und die aufkommende Bedeutung alternativer Daten.

Suciu Dan
Autorenavatar
Suciu Dan
8 Minuten lesen
Vorschaubild
LeitfädenWeb Scraping API Schnellstartanleitung

Starten Sie mit WebScrapingAPI, der ultimativen Web-Scraping-Lösung! Sammeln Sie Echtzeitdaten, umgehen Sie Anti-Bot-Systeme und genießen Sie professionellen Support.

Mihnea-Octavian Manolache
Autorenavatar
Mihnea-Octavian Manolache
9 Minuten lesen