
Tout d'abord, pourquoi votre crawler est-il toujours attiré par le site ?
De nombreux amis qui font de la collecte de données ont rencontré cette situation : il n'y a manifestement pas de problème avec le code, mais le programme s'exécute et demande à l'utilisateur d'entrer dans le système.403 Refus d'accèsou simplement recevoir un courriel d'avertissement du site web. C'est comme lorsque vous allez au supermarché pour goûter la nourriture, et qu'après quelques bouchées vous êtes surveillé par les agents de sécurité, alors qu'en fait le problème est...Vos empreintes digitales sur l'internet sont trop évidentes..
Le serveur web identifiera le crawler par plusieurs dimensions telles que l'adresse IP, la fréquence des requêtes, les caractéristiques de l'en-tête de la requête, etc. En particulier lorsque vos requêtes proviennent de la même adresse IP, c'est comme si vous portiez une carte de travail pour essayer de manger, vous n'attrapez pas qui ? Cette fois-ci, il faut donner au crawler une "cape d'invisibilité", c'est-à-dire que l'on va dire que le crawler a une "cape d'invisibilité".Technologie Proxy IP.
Deuxièmement, choisissez le bon proxy IP parmi les trois conseils suivants
Il existe de nombreux fournisseurs de services proxy sur le marché, mais peu d'entre eux sont fiables. D'après notre expérience du déploiement de robots d'indexation dans plus de 500 entreprises, ces trois paramètres sont les plus critiques :
Démonstration de l'erreur : Requête nue
import requêtes
response = requests.get("https://目标网站")
La bonne posture : porter des proxies
proxies = {
'http' : 'http://user:pass@ipipgo-proxy-server:port',
'https' : 'http://user:pass@ipipgo-proxy-server:port'
}
response = requests.get(url, proxies=proxies)
1. Pureté IPVous devez choisir un proxy de centre de données comme ipipgo, et non un pool de proxy public. Leur IP est celle de la salle des serveurs, ils tirent directement sur une ligne dédiée et ne la partagent pas avec d'autres !
2. Soutien au protocoleAujourd'hui, de nombreux sites web utilisent le protocole HTTPS, vous devez vous assurer que le proxy prend en charge tous les protocoles socks5/http(s). Avant d'avoir un client avec un certain proxy, le résultat de la rencontre avec des sites à contenu mixte directement à l'arrêt !
3. Fréquence de commutationIl est recommandé de changer l'IP toutes les 5 à 10 requêtes. L'API d'ipipgo peut obtenir directement la dernière IP, ce qui est beaucoup moins fastidieux que pour ceux qui doivent la changer manuellement.
Troisièmement, la configuration réelle pour éviter le guide de la fosse
Voici quelques points faciles à aborder, en utilisant la bibliothèque de requêtes de Python comme exemple :
Mythe 1Le problème, c'est que l'en-tête de la requête est révélateur. N'oubliez pas de générer un User-Agent au hasard, n'utilisez pas celui qui est fourni avec les requêtes :
from fake_useragent import UserAgent
headers = {'User-Agent' : UserAgent().random}
Mythe 2Le délai d'attente est trop court. Il est facile de se tromper lorsque le réseau fluctue. Il est donc recommandé de fixer un délai d'au moins 10 secondes :
response = requests.get(url, proxies=proxies, timeout=10)
Mythe 3Le module de gestion des exceptions : Ignorer la gestion des exceptions. Il est recommandé d'utiliser le module retrying pour effectuer des tentatives, comme ceci :
from retrying import retry
@retry(stop_max_attempt_number=3)
def safe_request(url).
try.
return requests.get(url, proxies=proxies, timeout=15)
except Exception as e.
print(f "Request failed, switching IPs and retrying : {str(e)}")
Ici, nous appelons l'API ipipgo pour changer d'IP.
update_proxy()
lever e
IV. questions fréquemment posées AQ
Q : Que dois-je faire si j'utilise une adresse IP proxy et que je suis toujours bloqué ?
R : Vérifiez d'abord s'il s'agit d'un proxy à haut niveau d'anonymat (comme ceux d'ipipgo), puis réduisez la fréquence des requêtes, il est préférable d'ajouter un délai aléatoire (0,5 à 3 secondes) entre les requêtes.
Q : La vitesse de l'IP proxy est trop lente pour affecter l'efficacité ?
R : Il est recommandé de choisir le forfait facturé à la bande passante. La latence moyenne de la ligne BGP d'ipipgo est de 80 ms ou moins, soit plus de 3 fois plus rapide que les agents ordinaires !
Q : Comment puis-je vérifier si l'agent est valide ?
R : Vous pouvez périodiquement visiter le site http://ipipgo.com/checkip. Cette interface de détection vous renverra l'IP et l'anonymat actuellement utilisés.
V. Stratégie de maintenance et contrôle des coûts
De nombreux débutants sont enclins à commettre l'erreur de saisir frénétiquement des données au cours des premières étapes, ce qui a pour conséquence de faire tourner le projet et de constater que les honoraires de l'agence sont surévalués. Voici deux astuces à vous apprendre :
1. Stratégie de commutation intelligenteVoici quelques raisons à cela : utilisez un proxy normal pour les pages statiques, puis passez à un proxy de haute qualité lorsque vous rencontrez une page avec une politique stricte contre l'escalade. ipipgo prend en charge les appels gradués en fonction de la qualité, ce qui permet d'économiser le coût de 301 TP3T.
2. Mécanisme de cache localLa durée de la mise en cache : Définir la durée de la mise en cache locale pour les données qui ne changent pas souvent. Par exemple, le prix des marchandises peut être mis en cache pendant 6 heures pour réduire le nombre de requêtes sans affecter l'activité.
3. Contrôle des exceptionsIl est recommandé d'utiliser Prometheus + grafana pour surveiller le grand tableau, lorsque le taux de réussite est inférieur à l'alarme automatique 95%, l'enquête opportune est le problème de l'agent ou la révision du site.
Enfin, pour être honnête, ne craignez pas cette ligne d'outils pour choisir la bonne moitié du succès. Comme notre département technique est maintenant unifié avec le service proxy ipipgo, la stabilité qu'avant le pool proxy auto-construit est trop forte, la clé est leur service client technique est vraiment 24 heures par jour en ligne, le dernier trois heures du matin pour mentionner l'ordre de travail en fait secondes de retour, ce point est vraiment convaincant.

