Wie man Proxys mit Python-Anfragen verwendet
Die Requests-Bibliothek leitet den Datenverkehr über einen Proxy mit einem kleinen Dictionary – aber das Schema, das Sie wählen, entscheidet, ob Ihre DNS- und Ursprungs-IP verborgen bleibt. Hier ist die praktische Version mit vollständigem ausführbarem Code.
Das Proxies-Dict und warum das Schema wichtig ist
Die requests Bibliothek von Python kommuniziert über ein einzelnes Dictionary mit einem Proxy. Die Schlüssel sind nicht das Protokoll des Proxys – sie sind das Schema der Ziel-URL. Also sagt {"http": ..., "https": ...} den Requests, welchen Proxy zu verwenden ist, wenn das Ziel eine HTTP- oder HTTPS-Seite ist, und in der Praxis zeigen beide Schlüssel auf denselben Endpunkt.
Was tatsächlich Ihre Privatsphäre ändert, ist das Schema innerhalb der Proxy-URL. Mit socks5:// löst Ihre eigene Maschine zuerst DNS auf und verbindet sich dann über den Proxy, was die Hostnamen, die Sie besuchen, preisgeben kann. Mit socks5h:// löst der Proxy DNS für Sie auf, sodass der Ziel-Hostname niemals unverschlüsselt Ihre Maschine verlässt. Für einen authentifizierten s4m.online Proxy, bevorzugen Sie socks5h, um DNS remote zu halten und Ihre ursprüngliche IP besser zu
| Proxy-Schema | DNS aufgelöst von | Port | Installieren |
|---|---|---|---|
socks5h:// | Proxy (remote) | 1080 | requests[socks] |
socks5:// | Ihr Computer (lokal) | 1080 | requests[socks] |
http:// | Proxy | 3128 | Standard-Requests |
SOCKS-Unterstützung benötigt PySocks (pip install "requests[socks]"); der HTTP-Endpunkt funktioniert mit einer Standardinstallation. s4m-Proxys sind Rechenzentrum SOCKS5 und HTTP, nach Gigabyte abgerechnet – siehe Preise. Wenn Sie nur Einweg-Endpunkte für schnelle Tests benötigen, ist die kostenlose öffentliche Proxy-Liste ein separater, dritter Pool (benutzen auf eigenes Risiko). Wählen Sie zwischen einem vollständigen Tunnel und einem Proxy? Lesen Sie den Vergleich, die VPN-Übersicht oder weitere Leitfäden.
Vollständiges ausführbares Beispiel
Ersetzen Sie USER:PASS durch Ihre Proxy-Anmeldeinformationen. Dies überprüft Ihre Ausgangs-IP, verwendet eine Sitzung erneut und wechselt dann über einen kleinen Pool mit Zeitüberschreitungen und Wiederholungen.
import random
import requests
from requests.exceptions import RequestException
# --- Credentials & endpoints (replace with your s4m.online proxy user) ---
USER = "USER"
PASS = "PASS"
HOST = "proxy.s4m.online"
# SOCKS5 with REMOTE DNS (socks5h) — needs: pip install "requests[socks]"
SOCKS5 = f"socks5h://{USER}:{PASS}@{HOST}:1080"
# Plain HTTP CONNECT proxy — works with a stock requests install
HTTP = f"http://{USER}:{PASS}@{HOST}:3128"
def proxies_for(proxy_url):
# The "http"/"https" keys are the scheme of the TARGET url,
# not the proxy's protocol — both can point at one proxy.
return {"http": proxy_url, "https": proxy_url}
def check_ip(session, proxy):
r = session.get(
"https://api.ipify.org?format=json",
proxies=proxies_for(proxy),
timeout=(5, 15), # (connect, read) seconds
)
r.raise_for_status()
return r.json()["ip"]
# --- Per-session config: pools connections, keeps cookies/headers ---
with requests.Session() as s:
s.headers.update({"User-Agent": "s4m-example/1.0"})
print("Exit IP:", check_ip(s, SOCKS5))
# --- Rotate across a list, retrying on failure ---
POOL = [SOCKS5, HTTP]
def fetch(url, retries=3):
last_err = None
for attempt in range(1, retries + 1):
proxy = random.choice(POOL)
try:
with requests.Session() as s:
r = s.get(url, proxies=proxies_for(proxy), timeout=(5, 15))
r.raise_for_status()
return r
except RequestException as e:
last_err = e
print(f"[{attempt}/{retries}] {proxy} failed: {e}")
raise last_err
resp = fetch("https://httpbin.org/ip")
print(resp.json())Pro-Anfrage, pro-Sitzung oder global
Pro Anfrage
Pass proxies= zu jedem Aufruf: requests.get(url, proxies=proxies_for(SOCKS5), timeout=10). Die expliziteste Form und die einfachste, um sie auf einer Aufruf-für-Aufruf-Basis zu wechseln oder zu rotieren.
Pro Sitzung
Setzen Sie es einmal mit session.proxies = proxies_for(SOCKS5). Jede Anfrage, die über diese Sitzung gemacht wird, erbt den Proxy und verwendet TCP-Verbindungen wieder, was schneller ist als ein frisches get() jedes Mal.
Global über die Umgebung
requests respektiert HTTP_PROXY, HTTPS_PROXY und ALL_PROXY. Exportieren Sie ALL_PROXY=socks5h://USER:PASS@proxy.s4m.online:1080 und jede Anfrage wird ohne Codeänderung weitergeleitet. Verwenden Sie NO_PROXY, um Hosts auszuschließen, oder trust_env=False in einer Sitzung, um die Umgebung zu ignorieren.
Dinge, die Menschen verwirren
Auth geht in die URL
Geben Sie USER:PASS@ direkt in die Proxy-URL ein, und die Anfragen senden die Anmeldeinformationen für Sie. Wenn Ihr Passwort @, : oder / Zeichen enthält, kodieren Sie es zuerst mit urllib.parse.quote.
DNS remote halten
socks5 löst Hostnamen auf Ihrem Computer auf; socks5h löst sie am Proxy auf. Verwenden Sie socks5h, wenn das Ziel darin besteht, Ihre Abfragen und die ursprüngliche IP vom Radar des Ziels fernzuhalten.
Eine Sitzung wiederverwenden
Eine requests.Session bündelt Verbindungen und speichert Cookies, sodass eine Reihe von Anfragen über einen Proxy deutlich schneller ist als jedes Mal requests.get() kalt aufzurufen.
TLS-Überprüfung aktiv lassen
Ein Proxy leitet nur Ihren Datenverkehr weiter — es gibt keinen Grund, verify=False zu setzen. Halten Sie die Zertifikatsüberprüfung aktiviert, damit ein Zwischenhändler HTTPS-Antworten nicht lautlos manipulieren kann.
Fragen, beantwortet
Brauchen SOCKS5-Proxys ein zusätzliches Paket?
Ja. requests benötigt PySocks für SOCKS-Unterstützung: installieren Sie es mit pip install "requests[socks]". Der HTTP-Endpunkt auf Port 3128 funktioniert mit einer Standard-requests-Installation und ohne zusätzliche Abhängigkeit.
Was ist der Unterschied zwischen socks5 und socks5h?
Es geht darum, wo DNS aufgelöst wird. socks5:// löst den Ziel-Hostnamen auf Ihrem eigenen Gerät auf, bevor eine Verbindung hergestellt wird; socks5h:// bittet den Proxy, ihn aufzulösen. Verwenden Sie socks5h, um das Leaken der Hostnamen, die Sie besuchen, zu vermeiden.
Warum ändert sich meine Ausgangs-IP nicht, wenn ich rotiere?
In der Regel wird das Proxydict nicht tatsächlich angewendet, oder eine einzelne Sitzung verwendet eine upstream Verbindung wieder. Bestätigen Sie, dass jede Anfrage proxies= übergibt, erstellen Sie eine frische Sitzung pro Proxy beim Rotieren und drucken Sie die Antwort von einem IP-Echo-Endpunkt aus, um zu verifizieren.
Sind das Wohn-IP-Adressen?
Nein. s4m-Proxys sind Datacenter-SOCKS5- und HTTP-Endpunkte, die mit einem Benutzernamen und Passwort authentifiziert und pro Gigabyte abgerechnet werden. Die separate kostenlose öffentliche Proxyliste ist von Dritten und nicht für die Produktion validiert.
Wie überspringe ich einen toten Proxy in einer Liste?
Umhüllen Sie jeden Versuch in try/except requests.exceptions.RequestException und versuchen Sie es dann mit dem nächsten Proxy aus Ihrem Pool erneut. Das ausführbare Beispiel oben macht genau dies mit einer kleinen Retry-Schleife.
Proxys, die dazu dienen, Ihre ursprüngliche IP zu verbergen
Authentifizierte Datacenter-SOCKS5- und HTTP-Proxys, nach Verbrauch abgerechnet, mit einer optionalen dedizierten persönlichen IP. Richten Sie Anfragen an proxy.s4m.online und los.
Menschen fanden diese Seite durch die Suche nach
- wie man proxys mit Python-Anfragen verwendet
- Was ist Proxy-Authentifizierung
- so erstellen sie ihren eigenen Proxy-Server auf einem VPS (3proxy / Dante)
- Proxy-Authentifizierung
- verwendung von HTTP_PROXY / HTTPS_PROXY umgebungsvariablen
- Proxy für Scraping
- beste openvpn 2026
- VPN-Kill-Switch erklärt
- Puppeteer-Proxy-Setup mit authentifizierung
- kostenlose Proxy-Liste nach Land
- VPN-Kill-Switch
- beste VPN-Kill-Switch 2026
Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.