Comment utiliser des proxys en Python

Linda Hamilton
Libérer: 2024-11-16 12:00:05
original
880 Les gens l'ont consulté

How to Use Proxies in Python

Si vous travaillez un peu avec Python, notamment dans le cas particulier du data scraping, vous avez probablement rencontré des situations où vous êtes bloqué en essayant de récupérer les données que vous vouloir. Dans une telle situation, savoir utiliser un proxy est une compétence pratique à posséder.

Dans cet article, nous explorerons ce que sont les proxys, pourquoi ils sont utiles et comment vous pouvez les utiliser à l'aide de la requête de bibliothèque en Python.

Qu'est-ce qu'une procuration ?

Commençons par le début en définissant ce qu'est un proxy.

Vous pouvez considérer un serveur proxy comme un « intermédiaire » entre votre ordinateur et Internet. Lorsque vous envoyez une requête à un site Web, la requête passe d'abord par le serveur proxy. Le proxy transmet ensuite votre demande au site Web, reçoit la réponse et vous la renvoie. Ce processus masque votre adresse IP, donnant l'impression que la demande provient du serveur proxy au lieu de votre propre appareil.

Comme cela peut être compris, cela a beaucoup de conséquences et d'utilisations. Par exemple, il peut être utilisé pour contourner certaines restrictions IP embêtantes ou pour maintenir l'anonymat.

Pourquoi utiliser un proxy en web scraping ?

Alors, pourquoi les proxys pourraient-ils être utiles lors de la récupération de données ? Eh bien, nous avons déjà donné une raison auparavant. Par exemple, vous pouvez les utiliser pour contourner certaines restrictions.

Ainsi, dans le cas particulier du web scraping, ils peuvent être utiles pour les raisons suivantes :

  • Éviter le blocage des adresses IP : les sites Web surveillent souvent les activités suspectes, comme une seule adresse IP effectuant de nombreuses requêtes en peu de temps. L'utilisation de proxys permet de répartir vos demandes sur plusieurs adresses IP en évitant d'être bloquées.
  • Contourner les restrictions géographiques : certains contenus ne sont accessibles qu'à partir de certains emplacements et les proxys peuvent vous aider à apparaître comme si vous accédiez au site depuis un autre pays.
  • Amélioration de la confidentialité : les proxys sont utiles pour garder vos activités de scraping anonymes en masquant votre véritable adresse IP.

Comment utiliser un proxy en Python à l'aide de requêtes

La bibliothèque de requêtes est un choix populaire pour effectuer des requêtes HTTP en Python et l'intégration de proxys dans vos requêtes est simple.

Voyons comment !

Obtenir des proxys valides

Tout d'abord : vous devez obtenir des proxys valides avant de les utiliser. Pour ce faire, vous avez deux options :

  • Proxies gratuites : vous pouvez obtenir des proxys gratuitement à partir de sites Web comme Free Proxy List. Ils sont facilement accessibles mais peuvent cependant être peu fiables ou lents.
  • Proxies payants : des services comme Bright Data ou ScraperAPI fournissent des proxys fiables avec de meilleures performances et un meilleur support, mais vous devez payer.

Utiliser des proxys avec des requêtes

Maintenant que vous avez votre liste de proxys, vous pouvez commencer à les utiliser. Par exemple, vous pouvez créer un dictionnaire comme celui-ci :

proxies = {
    'http': 'http://proxy_ip:proxy_port',
    'https': 'https://proxy_ip:proxy_port',
}
Copier après la connexion

Vous pouvez désormais faire une demande en utilisant les proxys :

import requests

proxies = {
    'http': 'http://your_proxy_ip:proxy_port',
    'https': 'https://your_proxy_ip:proxy_port',
}

response = requests.get('https://httpbin.org/ip', proxies=proxies)
Copier après la connexion

Pour voir le résultat de votre demande, vous pouvez imprimer la réponse :

print(response.status_code)  # Should return 200 if successful
print(response.text)         # Prints the content of the response
Copier après la connexion

Notez que si tout s'est bien passé, la réponse doit afficher l'adresse IP du serveur proxy, pas la vôtre.

Authentification proxy à l'aide de requêtes : nom d'utilisateur et mot de passe

Si votre proxy nécessite une authentification, vous pouvez la gérer de plusieurs manières.

Méthode 1 : inclure les informations d'identification dans l'URL du proxy
Pour inclure le nom d'utilisateur et le mot de passe pour gérer l'authentification dans votre proxy, vous pouvez le faire :

proxies = {
    'http': 'http://username:password@proxy_ip:proxy_port',
    'https': 'https://username:password@proxy_ip:proxy_port',
}
Copier après la connexion

Méthode 2 : utiliser HTTPProxyAuth
Alternativement, vous pouvez utiliser la classe HTTPProxyAuth pour gérer l'authentification comme suit :

from requests.auth import HTTPProxyAuth

proxies = {
    'http': 'http://proxy_ip:proxy_port',
    'https': 'https://proxy_ip:proxy_port',
}

auth = HTTPProxyAuth('username', 'password')

response = requests.get('https://httpbin.org/ip', proxies=proxies, auth=auth)
Copier après la connexion

Comment utiliser un proxy rotatif avec des requêtes

L'utilisation d'un seul proxy peut ne pas suffire si vous faites de nombreuses demandes. Dans ce cas, vous pouvez utiliser un proxy tournant : cela modifie l'adresse IP du proxy à intervalles réguliers ou par requête.

Si vous souhaitez tester cette solution, vous avez deux options : faire pivoter manuellement les proxys à l'aide d'une liste ou utiliser un service de rotation de proxy.

Voyons les deux approches !

Utiliser une liste de proxys

Si vous avez une liste de proxys, vous pouvez les faire pivoter manuellement comme ceci :

import random

proxies_list = [
    'http://proxy1_ip:port',
    'http://proxy2_ip:port',
    'http://proxy3_ip:port',
    # Add more proxies as needed
]

def get_random_proxy():
    proxy = random.choice(proxies_list)
    return {
        'http': proxy,
        'https': proxy,
    }

for i in range(10):
    proxy = get_random_proxy()
    response = requests.get('https://httpbin.org/ip', proxies=proxy)
    print(response.text)
Copier après la connexion

Utiliser un service de rotation proxy

Des services comme ScraperAPI gèrent la rotation du proxy pour vous. Il vous suffit généralement de mettre à jour l'URL du proxy qu'ils fournissent et de gérer un dictionnaire d'URL comme ceci :

proxies = {
    'http': 'http://your_service_proxy_url',
    'https': 'https://your_service_proxy_url',
}

response = requests.get('https://httpbin.org/ip', proxies=proxies)
Copier après la connexion

Conclusions

L'utilisation d'un proxy en Python est une technique précieuse pour le web scraping, les tests et l'accès au contenu géo-restreint. Comme nous l'avons vu, l'intégration de proxys dans vos requêtes HTTP est simple grâce aux requêtes de la bibliothèque.

Quelques conseils lors de la récupération de données sur le Web :

  • Respectez les politiques du site Web : vérifiez toujours le fichier robots.txt et les conditions d'utilisation du site Web.
  • Gérer les exceptions : les opérations réseau peuvent échouer pour diverses raisons, alors assurez-vous de gérer les exceptions et de mettre en œuvre des tentatives si nécessaire.
  • Sécurisez vos identifiants : si vous utilisez des proxys authentifiés, conservez vos identifiants en sécurité et évitez de les coder en dur dans vos scripts.

Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal