Sprache ändern
Deutsch English Русский Español Français Italiano Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menü
Preise
Proxys
PROXY-TYPEN
NACH STANDORT77 Standorte
Lösungen
Ressourcen

So nutzen Sie einen Proxy mit Python requests

Leiten Sie requests über eine statische ISP-Adresse: eine einzelne IP im Netz eines benannten Internetanbieters, die für den bezahlten Zeitraum Ihre bleibt. Der Code unten wurde vor der Veröffentlichung gegen einen Proxy mit Authentifizierung ausgeführt.

Kurz gesagt: Übergeben Sie ein proxies-Dictionary mit den beiden Schlüsseln http und https, jeweils auf http://USERNAME:PASSWORD@HOST:PORT gesetzt, und requests sendet den Aufruf über den Proxy; HTTPS-Ziele laufen als Tunnel hindurch. Für SOCKS5 installieren Sie requests[socks], schalten den Proxy in Ihrer Bestellung auf SOCKS5 um und verwenden das Schema socks5h, damit der Proxy die Hostnamen auflöst und nicht Ihr Rechner.

Python requests nimmt seinen Proxy aus einem Dictionary, das das Schema der Ziel-URL einer Proxy-URL zuordnet. Diese Anleitung setzt dieses Dictionary für eine statische ISP-Adresse und zeigt die drei Stellen, an denen es stehen kann: an einem Aufruf, an einer Session oder in der Umgebung.

Python requests Proxy mit Benutzername und Passwort

Die meisten Proxys, auch unsere, verlangen Benutzername und Passwort. requests liest sie aus der Proxy-URL und sendet sie bei jeder Verbindung an den Proxy. Bei einem HTTPS-Ziel öffnet der Proxy einen Tunnel und sieht den Inhalt der Anfrage nie. Die Code-Tabs zeigen die Variante pro Anfrage und die Session-Variante.

Einen Proxy in Python requests setzen

  1. Die vier Werte aus Ihrer Bestellung kopieren

    Host, Port, Benutzername und Passwort, aus Meine Proxys im Dashboard oder aus der Bestellung in der API. Jede Adresse hat ihre eigenen vier Werte; ein gemeinsames Gateway gibt es nicht.

  2. Eine Proxy-URL bauen

    http://USERNAME:PASSWORD@HOST:PORT. Enthält das Passwort /, ?, # oder %, kodieren Sie es zuerst mit urllib.parse.quote(password, safe="") für die URL.

  3. Sie für beide Schemata setzen

    Geben Sie dem Schlüssel http und dem Schlüssel https dieselbe URL. Ist nur http gesetzt, umgeht jede HTTPS-Anfrage den Proxy und geht von Ihrer eigenen Adresse aus.

  4. Die Ausgangsadresse einmal prüfen

    Rufen Sie eine Seite auf, die die IP des Aufrufers anzeigt, oder öffnen Sie Was ist meine IP über denselben Proxy, und prüfen Sie, dass es die gekaufte Adresse ist.

  5. Den Job mit einem Timeout ausführen

    Übergeben Sie immer timeout=: requests wartet standardmäßig unbegrenzt, und eine hängende Verbindung sieht dann aus wie ein hängendes Skript.

import requests

# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
import requests

proxy = "http://USERNAME:PASSWORD@HOST:PORT"

with requests.Session() as session:
    # HTTP_PROXY / HTTPS_PROXY in the environment would override
    # session.proxies; this makes the session use only its own setting.
    session.trust_env = False
    session.proxies.update({"http": proxy, "https": proxy})
    response = session.get("https://example.com/", timeout=30)
    response.raise_for_status()
    print(response.status_code)
# pip install "requests[socks]"
import requests

# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)

Getesteter Code für requests

Jedes Beispiel verbindet sich über einen HTTP-Proxy mit Benutzername und Passwort, außer dem SOCKS5-Beispiel: Dafür muss der Proxy zuerst auf SOCKS5 umgeschaltet werden, und die Bestellung zeigt danach einen neuen Port und neue Zugangsdaten, die Sie verwenden. Ersetzen Sie die vier großgeschriebenen Platzhalter durch die Werte Ihrer Bestellung.

Vollständige API-Dokumentation

Wo sich der Proxy in requests setzen lässt

Aus der Dokumentation von requests entnommen und mit den Codebeispielen dieser Seite gegen einen lokalen Proxy mit Authentifizierung geprüft. Ist mehr als eine Variante gesetzt, gewinnt ein proxies-Argument am Aufruf gegen die Umgebung, und die Umgebung gewinnt gegen Session.proxies, sofern die Session trust_env nicht auf False setzt, wie es das Session-Beispiel tut.
GeltungsbereichZugangsdatenWann verwenden
proxies= an einem AufrufDiese eine AnfrageIn der URLEin Skript mit einer Handvoll Aufrufen
Session.proxiesJede Anfrage der SessionIn der URLAlles Längere, mit trust_env auf False
HTTP_PROXY und HTTPS_PROXYJeder requests-Aufruf im ProzessIn der URLCode, den Sie nicht ändern können; NO_PROXY nennt die Hosts, die ausgenommen sind
socks5h://-URLDer Bereich, in dem sie gesetzt istIn der URLWenn Hostnamen beim Proxy aufgelöst werden sollen

Was bei requests und Proxys schiefgeht

Nur der Schlüssel http ist gesetzt

Der Schlüssel bezeichnet das Schema des Ziels, nicht das des Proxys. Ein Dictionary mit nur http leitet einfaches HTTP weiter und lässt jeden HTTPS-Aufruf direkt hinausgehen, ohne dass ein Fehler darauf hinweist.

socks5, wo socks5h gemeint war

Mit socks5 löst Ihr Rechner den Hostnamen auf und übergibt dem Proxy eine IP. Mit socks5h löst ihn der Proxy auf, sodass die Abfrage und ihre Antwort aus dem Netz des Proxys kommen. Das zählt bei Websites, die je nach Standort antworten.

Ein Passwort, das die URL zerlegt

Ein Schrägstrich, Fragezeichen oder Rautezeichen im Passwort schneidet die URL ab, und requests scheitert, bevor es den Proxy erreicht; ein Prozentzeichen wird als Escape-Sequenz dekodiert. Kodieren Sie das Passwort für die URL, oder nutzen Sie die Authentifizierung per IP-Whitelist und lassen Sie die Zugangsdaten weg.

Eine vergessene Umgebungsvariable

requests liest HTTP_PROXY, HTTPS_PROXY und NO_PROXY, sofern Sie trust_env in der Session nicht auf False setzen, und diese Variablen überschreiben Session.proxies. Eine veraltete Variable auf einem Server kann den Traffic einer Session an ein Ziel schicken, das Sie nicht vorgesehen haben, oder am Proxy vorbei.

Womit requests sich verbindet

Protokolle
HTTP, das HTTPS transportiert, oder SOCKS5, umgeschaltet in der Bestellung
Authentifizierung
Benutzername und Passwort oder eine IP-Whitelist, gesetzt über die API
Adresse
Eine statische IP für den Zeitraum, im Netz eines benannten Internetanbieters
Rotation
Keine: bei jeder Anfrage dieselbe Adresse

Weitere Anleitungen und das Produkt

Fragen zu Proxys in Python requests

Wie nutze ich einen Proxy mit Authentifizierung in Python requests?

Schreiben Sie Benutzername und Passwort in die Proxy-URL, http://USERNAME:PASSWORD@HOST:PORT, und übergeben Sie sie für die beiden Schlüssel http und https. requests sendet die Zugangsdaten an den Proxy, der mit 407 antwortet, wenn sie falsch sind. Kodieren Sie ein Passwort mit reservierten Zeichen, oder nutzen Sie stattdessen eine IP-Whitelist.

Wie nutze ich einen SOCKS5-Proxy mit requests?

Installieren Sie das Extra mit pip install requests[socks], schalten Sie den Proxy selbst in Ihrer Bestellung auf SOCKS5 um, und verwenden Sie den Port und die Zugangsdaten, die die Bestellung danach zeigt, in einer socks5h://-URL. Das Schema allein zu ändern reicht nicht: Eine auf HTTP eingestellte Adresse antwortet nicht auf SOCKS5, bis sie umgeschaltet ist. SOCKS5

Kann ich statt eines Passworts die Authentifizierung per IP-Whitelist nutzen?

Ja. Tragen Sie die öffentliche IPv4-Adresse, von der Ihr Skript läuft, mit einem API-Aufruf, PUT /orders/ORDER_ID/whitelist, oder über den MCP-Server in die Whitelist des Proxys ein; im Dashboard gibt es dafür noch keine Einstellung. Der Proxy nimmt dann Verbindungen von dieser Adresse ohne Zugangsdaten an, über HTTP und über SOCKS5, und die URL wird zu http://HOST:PORT. Solange eine Whitelist gesetzt ist, lässt der Proxy nur die eingetragenen Adressen zu, und Benutzername und Passwort funktionieren für diese Bestellung nicht mehr; senden Sie eine leere Liste, ist die Whitelist ausgeschaltet und die Anmeldung mit Passwort funktioniert wieder.

Wechselt die Adresse zwischen den Anfragen?

Nein. Ein statischer ISP-Proxy ist eine Adresse für den bezahlten Zeitraum, und jede Anfrage, die Sie darüber senden, geht von dieser Adresse aus. Braucht ein Job pro Anfrage eine andere Adresse, ist das ein rotierender Pool, den wir noch nicht verkaufen.

Wie prüfe ich, welche IP eine Website sieht?

Rufen Sie über denselben Proxy eine Seite auf, die die Adresse des Aufrufers zurückgibt, oder öffnen Sie What Is My IP in einem Browser, der auf diesen Proxy eingestellt ist. Zeigt sie Ihre eigene Adresse, fehlt wahrscheinlich der Schlüssel https. Was ist meine IP

Wofür darf ich den Proxy nutzen?

Tests Ihrer eigenen Websites nach Region, Qualitätsprüfungen, Anzeigenüberprüfung, Preis- und Marktforschung sowie Markenschutz brauchen nach unserer Richtlinie zur zulässigen Nutzung keine Prüfung. Der Proxy umgeht keine CAPTCHAs, keine Bot-Erkennung, keine Ratenlimits und keine Kontosperren, und die Richtlinie verbietet, es zu versuchen. Richtlinie zur zulässigen Nutzung

Eine statische Adresse passt zu Jobs, die jedes Mal vom selben Ort aus ankommen sollen: ein Monitor, eine regionale Prüfung, ein Test, der heute mit letzter Woche vergleicht. Bestellen Sie eine Adresse pro Job auf der Seite ISP-Proxys, sehen Sie sich die Preise an, und läuft derselbe Job in einem Browser, setzen die Anleitungen für Selenium und Playwright dort dieselbe Adresse.

Quellen