Comment utiliser un serveur proxy avec le module de requêtes Python - Guide ultime

Ștefan Răcila le 20 avril 2023

blog-image

Introduction

Le "web scraping" est un outil puissant qui vous permet d'extraire des informations précieuses des sites web. C'est pourquoi de nombreux sites web bloquent les adresses IP qui effectuent un trop grand nombre de requêtes. Pour éviter cela, vous pouvez utiliser des proxys pour effectuer des requêtes. Dans cet article, je vous montrerai comment utiliser Python avec des proxys et comment alterner les IP des proxys pour éviter d'être bloqué.

Mise en place

Avant de commencer, vous devez disposer des conditions préalables suivantes :

✅ Python installé

✅ Une certaine expérience de Python

✅ La bibliothèque de requêtes Python est également installée

Une liste d'adresses IP et de ports de proxy

Pour installer Python, vous devez télécharger le programme d'installation de Python à partir du site officiel de Python : https://www.python.org/downloads/

Vous pouvez choisir la dernière version de Python 3. Il est recommandé d'utiliser la dernière version de Python pour bénéficier des dernières fonctionnalités et mises à jour de sécurité.

Une fois le téléchargement terminé, exécutez le programme d'installation et suivez les instructions pour installer Python sur votre ordinateur. Au cours du processus d'installation, veillez à cocher l'option permettant d'ajouter Python au PATH de votre système, ce qui vous permettra d'exécuter Python à partir de la ligne de commande.

Une fois l'installation terminée, vous pouvez vérifier que Python est installé correctement en ouvrant une invite de commande ou un terminal et en exécutant la commande `python --version`. Cette commande devrait afficher la version de Python que vous avez installée.

Vous pouvez vérifier si le paquet `python-requests` est installé en ouvrant le terminal et en exécutant la commande suivante :

pip freeze

`pip` est un gestionnaire de paquets qui devrait être fourni avec les nouvelles versions de Python. Si vous avez besoin d'installer `pip` séparément pour une raison quelconque, vous pouvez suivre les instructions de ce guide.

`pip freeze` affichera tous les paquets Python actuellement installés et leurs versions. Vérifiez si le module `requests` est présent dans cette liste. Si ce n'est pas le cas, installez-le en lançant la commande suivante :

pip install requests

Configuration des proxys

Je vais expliquer dans cette section comment mettre en place des proxys avec `python-requests`. Pour commencer, nous avons besoin d'un proxy fonctionnel et de l'URL à laquelle nous voulons envoyer la requête.

Utilisation de base

import requests

proxies = {

'http': 'http://proxy_ip:proxy_port',

'https': 'http://secure_proxy_ip:proxy_port',

}

res = requests.get('https://httpbin.org/get', proxies=proxies)

Si vous n'avez pas de proxy privé que vous pouvez utiliser pour tester ce code, vous pouvez trouver un proxy public gratuit à partir de la liste sur freeproxylists.net. Veuillez noter que les proxy de ce site ne sont pas destinés à être utilisés dans un environnement de production et qu'ils peuvent ne pas être fiables.

Le dictionnaire `proxies` doit avoir la structure exacte montrée dans l'exemple de code. Vous fournissez un proxy à utiliser pour les connexions HTTP et un proxy à utiliser pour les connexions HTTPS. Les proxy peuvent être différents ou non. Vous pouvez utiliser le même proxy pour plusieurs protocoles.

Remarquez également que j'ai utilisé le schéma HTTP dans l'URL du proxy pour les deux connexions. Tous les proxy ne disposent pas d'un certificat SSL. La connexion au proxy se fera par HTTP dans les deux cas.

Pour s'authentifier auprès d'un proxy, vous pouvez utiliser la syntaxe suivante :

http://user:pass@working-proxy:port

Variables d'environnement

Si vous n'avez pas l'intention d'utiliser plusieurs jeux de mandataires, vous pouvez les exporter en tant que variables d'environnement.

Voici comment exporter des variables d'environnement dans l'interpréteur de commandes de Linux

$ export HTTP_PROXY='http://proxy_ip:proxy_port'

$ export HTTP_PROXYS='http://secure_proxy_ip:proxy_port'

Pour vérifier l'environnement, il suffit de lancer

env

Voici comment exporter des variables d'environnement avec PowerShell

>_ $Env:HTTP_PROXY='http://proxy_ip:proxy_port'

>_ $Env:HTTP_PROXYS='http://secure_proxy_ip:proxy_port'

Pour vérifier l'environnement, il suffit de lancer

>_ Get-ChildItem -Path Env :

Voici comment exporter des variables d'environnement dans l'Invite de commande

\> set HTTP_PROXY='http://proxy_ip:proxy_port'

\> set HTTP_PROXYS='http://secure_proxy_ip:proxy_port'

Pour vérifier l'environnement, il suffit de lancer

\N- set

De cette façon, vous n'avez pas besoin de définir des proxies dans votre code. Il suffit de faire la demande et cela fonctionnera.

Comment lire la réponse ?

Vous pouvez lire vos données de différentes manières, mais dans la plupart des cas, vous voudrez les lire sous forme de texte brut ou de chaîne encodée JSON.

Texte en clair :

response = requests.get(url)

text_resp = response.text

JSON, pour les réponses au format JSON, le paquet requests fournit une méthode intégrée.

response = requests.get(url)

json_resp = response.json()

Sessions proxy

Vous pouvez également vouloir récupérer des données sur des sites web qui utilisent des sessions. Dans ce cas, vous devez créer un objet session. Créez d'abord une variable nommée `session` et assignez-la à la méthode `Session()` de la requête. Maintenant vous devez assigner les proxies à l'attribut `.proxies` de la session. Ensuite, vous envoyez votre requête en utilisant l'objet `session` déjà créé. Cette fois, vous n'avez qu'à passer l'URL comme argument.

import requests

session = requests.Session()

session.proxies = {

'http': 'http://proxy_ip:proxy_port',

'https': 'http://secure_proxy_ip:proxy_port',

}

res = session.get('https://httpbin.org/get')

Assurez-vous de remplacer `proxy_ip` et `proxy_port` par l'IP et le port réels de votre proxy.

Comment alterner les IP de proxy

Pour éviter d'être bloqué par des sites web, il est important d'effectuer une rotation de vos IP proxy. Une façon de procéder consiste à créer une liste d'IP et de ports de proxy et à sélectionner des proxys de façon aléatoire lors des requêtes.

En voici un exemple :

def proxy_request(url, **kwargs):

while True:

try:

proxy = random.randint(0, len(ip_addresses) - 1)

proxies = {

'http': ip_addresses(proxy),

'https': ip_addresses(proxy)

}



response = requests.get(url, proxies=proxies, timeout=5, **kwargs)

print(f"Currently using proxy: { proxy['http'] }")

break

except:

print("Error encoutered, changing the proxy...")

return response

print(proxy_request('https://httpbin.org/get'))

Engager un professionnel

Bien qu'il soit possible de gérer ses propres proxies en utilisant Python, c'est un processus qui prend beaucoup de temps et d'argent pour obtenir un bon ensemble de proxies. Pour gagner du temps et de l'argent, vous pouvez utiliser un outil de scraping professionnel. WebScrapingAPI possède des capacités intégrées de gestion et de rotation des proxys. Nous disposons d'un pool de proxies vérifiés et de haute qualité, qui sont plus fiables et peuvent vous faire gagner du temps et de l'argent sur le long terme.

Nous avons également un mode proxy que vous pouvez essayer gratuitement. Pour obtenir une clé API gratuite, il vous suffit de créer un compte et de commencer l'essai de WebScrapingAPI. Voici un exemple de code sur l'utilisation de notre mode proxy :

import requests

def get_params(object):

params = ''

for key,value in object.items():

if list(object).index(key) < len(object) - 1:

params += f"{key}={value}."

else:

params += f"{key}={value}"

return params

API_KEY = '<YOUR_API_KEY>'

TARGET_URL = 'http://httpbin.org/get'

PARAMETERS = {

"proxy_type":"datacenter",

"device":"desktop"

}

PROXY = {

"http": f"http://webscrapingapi.{ get_params(PARAMETERS) }:{ API_KEY }@proxy.webscrapingapi.com:80",

"https": f"https://webscrapingapi.{ get_params(PARAMETERS) }:{ API_KEY }@proxy.webscrapingapi.com:8000"

}

response = requests.get(

url=TARGET_URL,

proxies=PROXY,

verify=False

)

print(response.text)

Veuillez noter que si vous voulez vous connecter au mode proxy via https, votre code doit être configuré pour ne pas vérifier les certificats SSL. Dans ce cas, ce serait `verify=False` puisque vous travaillez avec Python Requests.

À emporter

L'utilisation de proxys est un moyen efficace d'éviter d'être bloqué lors du web scraping. En faisant tourner les IP des proxys et en utilisant un pool de proxys, vous pouvez réduire les risques de blocage et augmenter vos chances de réussite. Cependant, la gestion de vos propres proxys peut être une source de tracas et il vous faudra peut-être beaucoup de temps et d'argent pour obtenir un bon ensemble de proxys.

Lorsque vous vous abonnez à un service de proxy premium, tel que WebScrapingAPI, vous avez accès à une variété de fonctionnalités, telles que la rotation d'IP et la possibilité de passer d'un proxy de centre de données à un proxy résidentiel.

Nous espérons que cet article vous a permis de mieux comprendre comment utiliser un proxy avec HttpClient et comment il peut vous aider dans vos besoins de scraping. Inscrivez-vous à notre essai gratuit de 14 jours pour tester notre service et découvrir toutes ses caractéristiques et fonctionnalités.

Nouvelles et mises à jour

Restez au courant des derniers guides et nouvelles sur le web scraping en vous inscrivant à notre lettre d'information.

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Articles connexes

vignette
GuidesComment récupérer les données des produits Amazon : Un guide complet des meilleures pratiques et des outils

Explorez les complexités du scraping des données de produits Amazon avec notre guide approfondi. Des meilleures pratiques aux outils tels que l'API Amazon Scraper, en passant par les considérations juridiques, apprenez à relever les défis, à contourner les CAPTCHA et à extraire efficacement des informations précieuses.

Suciu Dan
avatar de l'auteur
Suciu Dan
15 minutes de lecture
vignette
Cas d'utilisationLibérer la puissance des données financières : Explorer les données traditionnelles et alternatives

Plongez dans le rôle transformateur des données financières dans la prise de décision des entreprises. Comprendre les données financières traditionnelles et l'importance émergente des données alternatives.

Suciu Dan
avatar de l'auteur
Suciu Dan
8 minutes de lecture
vignette
GuidesGuide de démarrage rapide de l'API Web Scraping

Commencez avec WebScrapingAPI, la solution ultime de web scraping ! Collectez des données en temps réel, contournez les systèmes anti-bots et bénéficiez d'une assistance professionnelle.

Mihnea-Octavian Manolache
avatar de l'auteur
Mihnea-Octavian Manolache
9 minutes de lecture