Seule la clé http est définie
La clé désigne le schéma de la cible, pas celui du proxy. Un dictionnaire avec seulement http fait passer le HTTP simple et laisse chaque appel HTTPS sortir directement, sans aucune erreur pour vous prévenir.
Faites passer requests par une adresse ISP statique : une seule IP sur le réseau d'un fournisseur d'accès nommé, conservée pendant la période que vous payez. Le code ci-dessous a été exécuté contre un proxy avec authentification avant sa publication.
En bref : Passez un dictionnaire proxies avec les deux clés http et https, chacune réglée sur http://USERNAME:PASSWORD@HOST:PORT, et requests envoie l’appel via le proxy ; les cibles HTTPS le traversent sous forme de tunnel. Pour SOCKS5, installez requests[socks], basculez le proxy en SOCKS5 sur votre commande et utilisez le schéma socks5h, pour que ce soit le proxy qui résolve les noms d’hôte et non votre machine.
Python requests prend son proxy dans un dictionnaire qui associe le schéma de l’URL cible à une URL de proxy. Ce guide règle ce dictionnaire pour une adresse ISP statique et montre les trois endroits où il peut se trouver : sur un appel, sur une session ou dans l’environnement.
La plupart des proxys, les nôtres compris, demandent un identifiant et un mot de passe. requests les lit dans l’URL du proxy et les envoie au proxy à chaque connexion. Pour une cible HTTPS, le proxy ouvre un tunnel et ne voit jamais le contenu de la requête. Les onglets de code montrent la forme par requête et la forme par session.
Hôte, port, identifiant et mot de passe, depuis Mes proxys dans le tableau de bord ou depuis la commande dans l’API. Chaque adresse a ses quatre valeurs ; il n’y a pas de passerelle partagée.
http://USERNAME:PASSWORD@HOST:PORT. Si le mot de passe contient /, ?, # ou %, encodez-le d’abord pour l’URL avec urllib.parse.quote(password, safe="").
Donnez la même URL à la clé http et à la clé https. Si seule http est définie, chaque requête HTTPS contourne le proxy et part de votre propre adresse.
Demandez une page qui affiche l’IP de l’appelant, ou ouvrez Quelle est mon IP via le même proxy, et vérifiez qu’il s’agit bien de l’adresse achetée.
Passez toujours timeout= : par défaut, requests attend indéfiniment, et une connexion bloquée ressemble alors à un script figé.
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)
Chaque exemple se connecte via un proxy HTTP avec identifiant et mot de passe, sauf l'exemple SOCKS5 : il faut d'abord basculer le proxy en SOCKS5, et la commande affiche ensuite un nouveau port et de nouveaux identifiants à utiliser. Remplacez les quatre valeurs en majuscules par celles de votre commande.
| Portée | Identifiants | Quand l'utiliser | |
|---|---|---|---|
| proxies= sur un appel | Cette seule requête | Dans l'URL | Un script de quelques appels |
| Session.proxies | Chaque requête de la session | Dans l'URL | Tout ce qui est plus long, avec trust_env réglé sur False |
| HTTP_PROXY et HTTPS_PROXY | Chaque appel requests du processus | Dans l'URL | Du code que vous ne pouvez pas modifier ; NO_PROXY liste les hôtes à exclure |
| URL socks5h:// | La portée où elle est définie | Dans l'URL | Quand les noms d'hôte doivent être résolus par le proxy |
La clé désigne le schéma de la cible, pas celui du proxy. Un dictionnaire avec seulement http fait passer le HTTP simple et laisse chaque appel HTTPS sortir directement, sans aucune erreur pour vous prévenir.
Avec socks5, votre machine résout le nom d'hôte et transmet une IP au proxy. Avec socks5h, c'est le proxy qui le résout, si bien que la requête DNS et sa réponse viennent du réseau du proxy, ce qui compte pour les sites qui répondent selon la localisation.
Une barre oblique, un point d'interrogation ou un dièse dans le mot de passe tronque l'URL, et requests échoue avant d'atteindre le proxy ; un signe pourcentage est décodé comme une séquence d'échappement. Encodez le mot de passe pour l'URL, ou utilisez l'authentification par liste blanche d'IP et laissez les identifiants de côté.
requests lit HTTP_PROXY, HTTPS_PROXY et NO_PROXY, sauf si vous réglez trust_env sur False dans la session, et ces variables priment sur Session.proxies. Une variable périmée sur un serveur peut envoyer le trafic d'une session là où vous ne l'aviez pas prévu, ou le faire passer à côté du proxy.
Mettez l'identifiant et le mot de passe dans l'URL du proxy, http://USERNAME:PASSWORD@HOST:PORT, et passez-la pour les deux clés http et https. requests envoie les identifiants au proxy, qui répond 407 s'ils sont faux. Encodez un mot de passe qui contient des caractères réservés, ou utilisez plutôt une liste blanche d'IP.
Installez l'extra avec pip install requests[socks], basculez le proxy lui-même en SOCKS5 sur votre commande, et utilisez le port et les identifiants que la commande affiche alors dans une URL socks5h://. Changer le schéma ne suffit pas : une adresse réglée sur HTTP ne répond pas en SOCKS5 tant qu'elle n'a pas été basculée. SOCKS5
Oui. Ajoutez l'adresse IPv4 publique depuis laquelle tourne votre script à la liste blanche du proxy avec un appel d'API, PUT /orders/ORDER_ID/whitelist, ou via le serveur MCP ; le tableau de bord n'a pas encore de réglage pour cela. Le proxy accepte alors les connexions venant de cette adresse sans identifiants, en HTTP et en SOCKS5, et l'URL devient http://HOST:PORT. Tant qu'une liste blanche est définie, le proxy n'admet que les adresses listées, et l'identifiant et le mot de passe cessent de fonctionner pour cette commande ; envoyer une liste vide désactive la liste blanche, et la connexion par mot de passe fonctionne de nouveau.
Non. Un proxy ISP statique est une adresse pour la période que vous payez, et chaque requête que vous envoyez par lui part de cette adresse. Si une tâche a besoin d'une adresse différente à chaque requête, c'est un pool rotatif, que nous ne vendons pas encore.
Demandez via le même proxy une page qui renvoie l'adresse de l'appelant, ou ouvrez la page Quelle est mon IP dans un navigateur réglé sur ce proxy. Si elle affiche votre propre adresse, c'est probablement la clé https qui manque. Quelle est mon IP
Tester vos propres sites par région, les contrôles qualité, la vérification publicitaire, les études de prix et de marché et la protection de marque ne demandent aucun examen au titre de notre politique d'utilisation acceptable. Le proxy ne contourne ni les CAPTCHA, ni la détection de bots, ni les limites de débit, ni les bannissements de comptes, et la politique interdit d'essayer. Politique d'utilisation acceptable