Changer de langue
Français English Русский Deutsch Español Italiano Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menu
Tarifs
Proxys
TYPES DE PROXY
PAR EMPLACEMENT77 emplacements
Solutions
Ressources

Comment utiliser un proxy avec Python requests

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.

Proxy Python requests avec identifiant et mot de passe

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.

Définir un proxy dans Python requests

  1. Copiez les quatre valeurs de votre commande

    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.

  2. Construisez une URL de proxy

    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="").

  3. Définissez-la pour les deux schémas

    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.

  4. Vérifiez une fois l'adresse de sortie

    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.

  5. Lancez la tâche avec un délai d'expiration

    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)

Code testé pour requests

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.

Documentation API complète

Où définir le proxy dans requests

Tiré de la documentation de requests et vérifié avec les exemples de code de cette page contre un proxy local avec authentification. Quand plusieurs réglages coexistent, un argument proxies sur l'appel l'emporte sur l'environnement, et l'environnement l'emporte sur Session.proxies, sauf si la session règle trust_env sur False, comme le fait l'exemple Session.
PortéeIdentifiantsQuand l'utiliser
proxies= sur un appelCette seule requêteDans l'URLUn script de quelques appels
Session.proxiesChaque requête de la sessionDans l'URLTout ce qui est plus long, avec trust_env réglé sur False
HTTP_PROXY et HTTPS_PROXYChaque appel requests du processusDans l'URLDu code que vous ne pouvez pas modifier ; NO_PROXY liste les hôtes à exclure
URL socks5h://La portée où elle est définieDans l'URLQuand les noms d'hôte doivent être résolus par le proxy

Ce qui tourne mal avec requests et les proxys

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.

socks5 au lieu de socks5h

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.

Un mot de passe qui casse l'URL

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é.

Une variable d'environnement oubliée

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.

Ce à quoi requests se connecte

Protocoles
HTTP, qui transporte HTTPS, ou SOCKS5, activé sur la commande
Authentification
Identifiant et mot de passe, ou liste blanche d'IP définie via l'API
Adresse
Une IP statique pour la période, sur le réseau d'un fournisseur d'accès nommé
Rotation
Aucune : la même adresse à chaque requête

Les autres guides, et le produit

Questions sur les proxys dans Python requests

Comment utiliser un proxy avec authentification dans Python requests ?

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.

Comment utiliser un proxy SOCKS5 avec requests ?

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

Puis-je utiliser l'authentification par liste blanche d'IP au lieu d'un mot de passe ?

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.

L'adresse change-t-elle d'une requête à l'autre ?

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.

Comment savoir quelle IP un site voit ?

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

À quoi puis-je utiliser le proxy ?

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

Une adresse statique convient aux tâches qui doivent arriver chaque fois du même endroit : une surveillance, un contrôle régional, un test qui compare aujourd’hui à la semaine dernière. Commandez une adresse par tâche sur Proxys ISP, consultez les tarifs, et si la même tâche tourne dans un navigateur, les guides Selenium et Playwright y règlent la même adresse.

Sources