
Que faire lorsqu'un crawler rencontre un contre-crawler ? Essayez cette combinaison
Vous faites du crawl de données à l'ancienne, vous avez dû rencontrer cette situation : il suffit d'écrire un bon script de crawler, s'exécutant soudainement par l'IP bloquée du site cible. En ce moment, ne vous empressez pas d'écraser le clavier, nous voulons parler de la situation d'aujourd'hui.Proxy IP + analyse HTMLUne combinaison de coups de poing spécialisés dans toutes sortes de problèmes d'escalade.
HTML parsing three big killers how to choose
Il y a tellement de bibliothèques pour manipuler le HTML en Python, concentrons-nous sur les trois plus utiles :
| artefact | difficulté initiale | Scénarios applicables |
|---|---|---|
| BeautifulSoup | ★☆☆☆☆ | Traitement rapide de pages simples |
| lxml | ★★★☆☆☆ | Nécessité d'une analyse syntaxique performante |
| PyQuery | ★★☆☆☆☆ | Familiarité avec la syntaxe de jQuery |
J'aime généralement utiliser BeautifulSoup + lxml la paire d'or, à la fois pour assurer la vitesse d'analyse, l'écriture et la fluidité. Prenons un marron :
from bs4 import BeautifulSoup
import requests
N'oubliez pas de remplacer les proxies par des proxies ipipgo ici
proxies = {
'http' : 'http://username:password@gateway.ipipgo.com:9020',
'https' : 'https://username:password@gateway.ipipgo.com:9020'
}
resp = requests.get('destination URL', proxies=proxies)
soup = BeautifulSoup(resp.text, 'lxml')
title = soup.find('h1', class_='title').text
La bonne façon d'ouvrir un proxy IP
Beaucoup de débutants ont tendance à tomber dans le piège de la configuration du proxy :
- Ne pas confondre les informations d'authentificationLe nom d'utilisateur et le mot de passe pour ipipgo doivent être clairement indiqués dans l'adresse du proxy.
- Le protocole doit correspondreLes adresses proxy pour http et https doivent être configurées séparément.
- Les paramètres de délai d'attente sont incomparablesIl est recommandé d'ajouter le paramètre timeout=10 aux demandes.
Voici une recommandation pour ipipgoAgents résidentiels dynamiquesLe taux de survie IP de leur domicile peut atteindre plus de 95%. En particulier lors de la collecte de données sur le commerce électronique, avec leur agent résidentiel statique, une IP peut être utilisée pendant 24 heures sans être retournée.
Guide pratique pour éviter la fosse
Récemment, un ami qui fait du commerce électronique transfrontalier m'a demandé de l'aide. Il utilisait un proxy normal pour récupérer les données d'Amazon, qui étaient toujours bloquées. Ils ont ensuite opté pour ipipgoAgents de rotation intelligentsLe problème est résolu avec la structure de code suivante :
import random
from itertools import cycle
Pool de proxy de ipipgo
proxy_pool = [
'http://user:pass@gateway.ipipgo.com:9020',
'http://user:pass@gateway2.ipipgo.com:9020', ...
... Plus d'adresses proxy
]
proxy_cycle = cycle(proxy_pool)
for page in range(1, 100) : current_proxy = next(proxy_cycle)
current_proxy = next(proxy_cycle)
try : resp = requests.get(url, proxies)
resp = requests.get(url, proxies={'http' : current_proxy}, timeout=8)
Logique d'analyse...
except Exception as e.
print(f "Échec avec {current_proxy}, passez au suivant !")
AQ commun pour les Blancs
Q : Pourquoi suis-je toujours bloqué si j'utilise un proxy ?
R : La probabilité est que la qualité de l'agent n'est pas bonne, les agents libres sont fondamentalement dans la liste noire du site. Il est recommandé d'utiliser ipipgo, ces fournisseurs de services professionnels, ils sont mis à jour chaque jour dix millions de pools d'IP !
Q : Dois-je gérer mon propre pool d'agents ?
R : Ce n'est pas nécessaire ! L'arrière-plan d'ipipgo filtrera automatiquement les adresses IP non valides, et vous pouvez également personnaliser les nœuds d'exportation en fonction de la région, ce qui est beaucoup moins fastidieux que de le faire vous-même.
Q : Comment casser le CAPTCHA lorsque je le rencontre ?
R : Ce sera sur le site d'ipipgo.Agents à forte valeur ajoutée+ demander le contrôle de la fréquence maintenant. Suggérer d'ajouter random.sleep(random.uniform(1,3)) au code pour simuler le fonctionnement d'une personne réelle.
Dites quelque chose qui vient du cœur.
Dans cette ligne de capture de données, l'IP proxy est comme un gilet pare-balles pour les guerriers. J'ai utilisé sept ou huit fournisseurs de services, le dernier renouvellement à long terme ou ipipgo. Ils ont deux particularités qui me frappent : la première est la rapidité de réponse du service clientèle, trois heures au milieu de la nuit pour mentionner l'ordre de travail sont les gens de retour ; la deuxième est la conception de l'API est simple à apporter pour être en mesure de brancher directement dans le code à utiliser. Récemment, j'ai vu le site officiel dans les 618 activités, le premier mois de nouveaux utilisateurs seulement 9,9, veulent tester l'eau peut aller.
Un dernier rappel pour les débutants :N'économisez pas d'argent sur les IP proxy! Les proxies partagés bon marché semblent rentables, mais le temps réellement perdu est suffisant pour acheter dix ans de VIP. Choisissez le bon outil pour obtenir deux fois plus de résultats avec deux fois moins d'efforts, vous ne pensez pas ?

