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.
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.
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.
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.
http://USERNAME:PASSWORD@HOST:PORT. Enthält das Passwort /, ?, # oder %, kodieren Sie es zuerst mit urllib.parse.quote(password, safe="") für die URL.
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.
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.
Ü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)
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.
| Geltungsbereich | Zugangsdaten | Wann verwenden | |
|---|---|---|---|
| proxies= an einem Aufruf | Diese eine Anfrage | In der URL | Ein Skript mit einer Handvoll Aufrufen |
| Session.proxies | Jede Anfrage der Session | In der URL | Alles Längere, mit trust_env auf False |
| HTTP_PROXY und HTTPS_PROXY | Jeder requests-Aufruf im Prozess | In der URL | Code, den Sie nicht ändern können; NO_PROXY nennt die Hosts, die ausgenommen sind |
| socks5h://-URL | Der Bereich, in dem sie gesetzt ist | In der URL | Wenn Hostnamen beim Proxy aufgelöst werden sollen |
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.
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 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.
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.
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.
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
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.
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.
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
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