Dans le processus d'exploration de données (crawling), l'utilisation d'IP proxy est un moyen courant et efficace d'éviter d'être bloqué ou limité dans l'accès au site web cible. L'IP proxy peut masquer l'adresse IP réelle du crawler, ce qui donne l'impression que le crawler provient d'un utilisateur différent, améliorant ainsi l'efficacité du crawling. Ensuite, j'expliquerai en détail comment utiliser l'IP proxy dans le crawler.
préliminaire
Avant de commencer, vous devrez préparer les outils et ressources suivants :
- Langage de programmation Python
- Quelques adresses IP de proxy disponibles
- Bibliothèque de requêtes de Python.
Étape 1 : Installer les bibliothèques nécessaires
Tout d'abord, assurez-vous que Python est installé. Si ce n'est pas le cas, vous pouvez le télécharger et l'installer à partir du site web de Python. Ensuite, installez la bibliothèque requests :
pip install requests
Étape 2 : Obtenir l'IP du proxy
Vous pouvez trouver des fournisseurs de services IP proxy en ligne, par exemple : ipipgo
Obtenez quelques adresses IP de proxy à partir du site web ipipgo et enregistrez leurs adresses IP et leurs numéros de port.
Étape 3 : Écrire le code du crawler
Ensuite, nous allons écrire un simple crawler Python qui utilise des IP proxy pour effectuer des requêtes sur le réseau.
demandes d'importation
Liste des mandataires de #
proxies_list = [
{"http" : "http://proxy1:port", "https" : "https://proxy1:port"},
{"http" : "http://proxy2:port", "https" : "https://proxy2:port"},
{"http" : "http://proxy3:port", "https" : "https://proxy3:port"}, {"http" : "http://proxy3:port", "https" : "https://proxy3:port"}, }
# Ajouter plus d'IP de proxy
]
# URL cible
target_url = "http://example.com"
Fonction de requête #
def fetch_url(proxy) :
try.
response = requests.get(target_url, proxies=proxy, timeout=5)
print(f "Using proxy {proxy} Request successful, status code : {response.status_code}")
# Traitement du contenu de la réponse
print(response.text[:100]) # Impression des 100 premiers caractères.
except requests.RequestException as e :
print(f "Using proxy {proxy} Request failed : {e}")
# Effectuer la demande en utilisant les adresses IP du proxy dans l'ordre
for proxy in proxies_list :
fetch_url(proxy)
Dans ce script, nous définissons une fonction `fetch_url` pour demander l'URL de destination via l'IP proxy spécifiée. Nous effectuons ensuite les requêtes en utilisant les IP proxy à tour de rôle, et nous affichons les résultats de chaque requête.
Étape 4 : Exécuter le script
Sauvegardez le code ci-dessus dans un fichier Python, par exemple `proxy_scraper.py`. Exécutez le script dans un terminal :
python proxy_scraper.py
Le script demandera l'URL cible en utilisant tour à tour différentes IP de proxy et affichera le résultat de chaque demande.
Utilisation avancée : sélection aléatoire de l'IP du proxy
Dans la pratique, il est possible que vous souhaitiez sélectionner des adresses IP de proxy de manière aléatoire afin d'éviter d'être détecté par le site web cible. Vous trouverez ci-dessous un script amélioré qui utilise une IP proxy sélectionnée de manière aléatoire pour les requêtes :
importer des demandes
importer aléatoire
Liste des serveurs mandataires de #
proxies_list = [
{"http" : "http://proxy1:port", "https" : "https://proxy1:port"},
{"http" : "http://proxy2:port", "https" : "https://proxy2:port"},
{"http" : "http://proxy3:port", "https" : "https://proxy3:port"}, {"http" : "http://proxy3:port", "https" : "https://proxy3:port"}, }
# Ajouter plus d'IP de proxy
]
# URL cible
target_url = "http://example.com"
Fonction de requête #
def fetch_url(proxy) :
try.
response = requests.get(target_url, proxies=proxy, timeout=5)
print(f "Using proxy {proxy} Request successful, status code : {response.status_code}")
# Traitement du contenu de la réponse
print(response.text[:100]) # Impression des 100 premiers caractères.
except requests.RequestException as e :
print(f "Using proxy {proxy} Request failed : {e}")
# Sélection aléatoire d'une IP proxy pour la requête
for _ in range(10) : # nombre de requêtes
proxy = random.choice(proxies_list)
fetch_url(proxy)
Dans ce script, nous utilisons la fonction Python `random.choice` pour sélectionner au hasard une IP proxy dans une liste d'IP proxy à demander. Cela permet d'éviter la détection par le site cible et d'améliorer l'efficacité du crawling.
mise en garde
Il y a quelques points à garder à l'esprit lors de l'utilisation d'IP proxy pour le crawling :
- Qualité de l'IP proxy :Assurez-vous que l'adresse IP du proxy que vous utilisez est fiable, sinon la demande risque d'échouer.
- Fréquence des demandes :Fixer raisonnablement la fréquence des demandes afin d'éviter que des demandes trop fréquentes n'entraînent le blocage de l'IP du site web cible.
- Gestion des exceptions :Dans les applications pratiques, diverses exceptions peuvent être rencontrées, telles qu'un dépassement de délai du réseau, une défaillance de l'adresse IP du proxy, etc. Des mécanismes appropriés de gestion des exceptions doivent être ajoutés.
résumés
Avec les étapes ci-dessus, vous pouvez utiliser des IP proxy dans votre crawler pour améliorer l'efficacité du crawling et éviter d'être bloqué par le site web cible. Que ce soit pour protéger la vie privée ou pour améliorer l'efficacité du crawler, l'IP proxy est un outil technique qui vaut la peine d'être essayé.
J'espère que cet article vous aidera à mieux comprendre et utiliser le proxy IP de crawler. Je vous souhaite un processus de crawling de données fluide et efficace !