
Quand le crawler rencontre l'anti-climbing, l'IP proxy est la vraie fraternité.
Engagé dans le data crawl, je sais que le site est maintenant très fin. La même demande d'IP est fréquente, la limite de vitesse légère, le sceau lourd. La semaine dernière, un ami du commerce électronique a déclaré qu'il utilisait une adresse IP ordinaire pour attraper le prix de ses concurrents ; en une demi-journée, il a été bloqué plus d'une douzaine de fois. En ce moment, nous devons offrir le proxy IP cette arme magique, en particulier comme ipipgo qui peut fournirRotation dynamique des pools d'adresses IPdes prestataires de services.
import requests
from bs4 import BeautifulSoup
proxies = {
'http' : 'http://用户名:密码@proxy.ipipgo.cc:端口',
'https' : 'http://用户名:密码@proxy.ipipgo.cc:端口'
}
response = requests.get('destination URL', proxies=proxies)
soup = BeautifulSoup(response.text, 'html.parser')
C'est ici que la logique d'analyse entre en jeu...
Trois conseils pour apprendre à jouer avec les agents + Analyse
Première astuce : la rotation dynamique des adresses IP
Avec le package résidentiel dynamique d'ipipgo, chaque demande change automatiquement d'IP. test d'une plateforme de commerce électronique, une seule IP pouvant supporter jusqu'à 20 demandes, avec une IP dynamique après 200 fois consécutives n'a pas déclenché le contrôle du vent.
Conseil n° 2 : garder le déguisement complet
Il ne suffit pas de changer l'IP, il faut aussi prévoir un User-Agent aléatoire, nous recommandons ici la bibliothèque fake_useragent, et l'IP proxy avec de meilleurs résultats :
from fake_useragent import UserAgent
headers = {'User-Agent' : UserAgent().random}
response = requests.get(url, headers=headers, proxies=proxies)
Conseil n° 3 : ne pas être paresseux dans la gestion des exceptions
Lorsque vous rencontrez le code d'état 403/503, ne soyez pas dur. La mise en place d'un mécanisme de relance et d'une commutation automatique d'IP est la bonne solution :
retries = 3
for _ in range(retries): : _ in range(retries) : _ in range(retries) : _ in range(retries)
try : response = requests.get(url, proxies=proxies, timeout=10)
response = requests.get(url, proxies=proxies, timeout=10)
if response.status_code == 200 : if response.status_code == 200 : if response.status_code == 200
if response.status_code == 200 : break
sauf.
Ici, nous appelons l'API d'ipipgo pour changer l'adresse IP.
update_proxy()
Guide pratique pour éviter la fosse
| phénomène problématique | prescription |
|---|---|
| Soudain, toutes les demandes sont interrompues | Vérification des informations relatives à l'autorisation du proxy, changement de type de protocole (échange HTTP/HTTPS) |
| Analyse de la page CAPTCHA | 降低请求频率,增加随机(0.5-3秒) |
| Données de retour incomplètes | Vérifier si le site a un chargement AJAX, passer à selenium + proxy |
Ancien conducteur QA Time
Q : Les adresses IP proxy ne fonctionnent pas lorsque je les utilise ?
R : Choisissez l'offre statique exclusive d'ipipgo, une seule IP peut être utilisée pendant un mois. Si vous utilisez un forfait dynamique, n'oubliez pas de définir la fréquence de changement automatique, leur API prend en charge le changement d'IP à temps.
Q : Comment puis-je améliorer l'efficacité de la collecte des données ?
A:两个路子:1)上多线程,每个线程配不同代理 2)用ipipgo的TK专线,能压到200ms以内。
Q : Quel est le forfait ipipgo le plus avantageux ?
R : Utilisez Dynamic Residence Standard Edition (7,67 $/GB) pour une collection à petite échelle, choisissez Enterprise Edition Dynamic Package pour les entreprises, et choisissez Static Residence à 35 $/mois pour ceux qui ont besoin d'une IP fixe.
Je vais vous dire ce qui me préoccupe.
Proxy IP cette chose, la stabilité est dix fois plus importante que le prix. J'en ai déjà utilisé d'autres pour pas cher, et j'ai souvent rencontré des problèmes de duplication des pools d'IP et de lenteur de réponse. ipipgo a une fonction froide mais utile - leFiltrer les IP par pays villeC'est un excellent outil pour la collecte de données géographiques. Le service clientèle peut aider à rédiger un plan de collecte personnalisé, adapté aux débutants paresseux.
Enfin, je voudrais rappeler que l'utilisation d'un proxy n'est pas une médaille d'or, il doit être utilisé en conjonction avec le contrôle de la fréquence des requêtes et le camouflage des en-têtes de requêtes afin d'en maximiser l'effet. Lorsque vous rencontrez un site web particulièrement difficile, directement sur leur activité de serveur en nuage, le déploiement local de nœuds de proxy est plus inquiétant.

