
Pourquoi la recherche d'avis sur Yelp est-elle toujours bloquée ?
Les amis qui se sont engagés dans l'exploration de données savent que le mécanisme anti-crawler de Yelp est particulièrement difficile à gérer. La semaine dernière, un vieux frère d'un magasin de thé au lait est venu me trouver pour se plaindre. Il a dit qu'il avait utilisé Python pour écrire un script afin de capturer les évaluations des magasins concurrents, et les résultats ont été bloqués pendant une demi-heure par l'IP. Ce problème est, pour le dire franchementLes visites à haute fréquence déclenchent un contrôle des risquesC'est comme si vous preniez un cupcake une douzaine de fois dans le rayon dégustation d'un supermarché, et il est étonnant que le vendeur ne vous arrête pas.
La valeur réelle des adresses IP proxy
Cette fois-ci, il est nécessaire d'utiliser une IP proxy pourDécentralisation de la pression des demandes. Le principe consiste à ouvrir une chaîne de magasins - chaque succursale envoie un employé différent pour goûter la nourriture, et chaque magasin n'est visité qu'une fois par jour. Plus précisément, il y a trois points essentiels à garder à l'esprit lorsqu'il s'agit de la mise en œuvre technique :
| paramètres | Configurations recommandées | fausse démonstration |
|---|---|---|
| intervalle de demande | 30-120 secondes au hasard | Fixe 1 seconde |
| Fréquence de commutation IP | Changement d'adresse IP toutes les 5 demandes | Plein IP unique |
| Paramètres de l'en-tête de la demande | Génération aléatoire de User-Agent | Utilisation de l'en-tête par défaut |
Configuration pratique du système d'agents
Voici une démonstration de la configuration de base en Python, en se concentrant sur la section des paramètres du proxy. Notez que vous devez choisir de supporterAgent résidentielles IP des salles de serveurs sur le marché sont depuis longtemps repérées par Yelp :
demandes d'importation
à partir d'un choix d'importation aléatoire
Pool de proxys de ipipgo
proxies = [
"203.34.56.78:8800",
"198.23.189.102:3128",
"45.76.203.91:8080"
]
headers = {
User-Agent' : 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36'
}
def scrape_yelp(url).
try : response = requests.get(url).
response = requests.get(
url, proxies={"http" : choice(proxies)}, response = requests.get(
proxies={"http" : choice(proxies)},
headers=headers,
timeout=15
)
return response.text
except Exception as e.
print(f "Exception de demande : {str(e)}")
Guide pour éviter les pièges (exemples concrets)
L'année dernière, un client a utilisé un proxy gratuit pour récupérer des données et s'est retrouvé avec trois scénarios de transfert :
- Le taux de répétition IP dépasse 60%
- Fluctuations du temps de réponse de 0,5 à 15 secondes
- L'agent de 20% ne peut pas se connecter du tout.
J'ai ensuite opté pour ipipgo.Agents résidentiels dynamiquesLe taux de réussite est directement tiré jusqu'à 92%. Leur pool d'adresses IP est mis à jour quotidiennement avec plus de 20%, ce qui est particulièrement adapté aux scénarios qui nécessitent des séries de données à long terme.
Foire aux questions QA
Q : Pourquoi le site est-il toujours bloqué après l'utilisation d'un proxy ?
A : Vérifiez trois points : 1. si le délai aléatoire est défini 2. si User-Agent est aléatoire 3. si une même IP est utilisée plus de 10 fois
Q : Que dois-je faire si la réponse de l'IP proxy est lente ?
R : Il est recommandé d'activer la fonctionRoutage intelligentFonction qui sélectionne automatiquement le nœud avec la latence la plus faible. Elle est mesurée comme étant plus de trois fois plus rapide que la sélection manuelle des nœuds.
Q : Quel est le volume de propriété intellectuelle nécessaire pour être suffisant ?
R : Selon le calcul de 10 000 données par jour, il est recommandé de préparer 500 + adresses IP dynamiques.Programme de 899 euros/moisIl contient 600 adresses IP résidentielles de haute qualité et offre un excellent rapport qualité-prix.
Solutions améliorées
Pour les utilisateurs en entreprise, il est recommandé d'utiliser une architecture de crawlers distribués. Déployez les nœuds d'exploration dans différentes régions du serveur, chaque nœud étant configuré avec un compte proxy ipipgo indépendant. Cela permet non seulement d'améliorer la vitesse de collecte, mais aussi d'obtenir des informations plus précises.Collecte de données géographiques(par exemple, obtenir des données sur les commerçants spécifiquement pour la région de New York).
Dans le cadre d'un programme récent visant à aider une chaîne de restaurants, 10 serveurs + la version entreprise du proxy d'ipipgo ont permis d'obtenir 2,7 millions d'avis en trois mois. L'avantage est que vous n'avez pas à gérer vous-même le pool d'adresses IP, ce qui vous permet d'économiser les coûts de main-d'œuvre d'au moins deux programmeurs.

