
L'utilisation de Rvest pour capturer des données sans bloquer les nombres.
Récemment, un petit ami m'a toujours demandé comment faire face au blocage de l'IP par le site des données de capture des récoltes. C'est comme aller au marché pour acheter de la nourriture, c'est toujours la même chose. Aujourd'hui, nous allons voir comment utiliser le proxy IP pour résoudre le problème, en me recommandant d'utiliser le service ipipgo.
Pourquoi votre crawler est-il toujours bloqué ?
Les webmasters ne sont pas végétariens, ils ont trois chats à fouetter :Détection de la fréquence d'accès, identification des anomalies IP, profilage des requêtesLa même demande IP 50 fois par minute, ce qui est à cent mille miles de la vitesse de navigation normale. Pour donner un marron, la même demande IP 50 fois par minute, qui avec la vitesse de navigation des gens normaux différence de dix-huit mille miles, ne pas bloquer vous bloquer qui ?
Exemples de code typiques
library(rvest)
for(i in 1:100){
read_html("https://example.com/data?page="%>%paste0(i))
}
Écrire un tel code équivaut à brandir un porte-voix et à crier "Je suis un robot d'exploration". Utiliser une IP proxy revient à museler le crawler afin que le site ne vous reconnaisse pas pour ce que vous êtes.
Pratique de la configuration du proxy ipipgo
Prenez par exemple le Dynamic Residential Proxy d'ipipgo (c'est le plus stable) et configurez-le en trois étapes :
bibliothèque(httr)
proxy <- "username:password@gateway.ipipgo.com:9021" Remplacez vos informations d'authentification
Requête avec proxy
response <- GET("https://target-site.com",
use_proxy(proxy),
user_agent("Mozilla/5.0..."))
Utilisation avec rvest
html % html_text()
faire attention àChanger régulièrement l'adresse IP du proxyL'API d'ipipgo peut être modifiée automatiquement, ce qui est beaucoup moins gênant que de le faire manuellement. Leur taux de survie peut atteindre 99%, ce qui est plus fiable que les proxies gratuits.
Scène de renversement de la petite commune blanche
Ce sont les fosses dans lesquelles je suis tombé à l'époque :
| phénomène problématique | méthode régler un problème |
|---|---|
| Elle renvoie soudain une erreur 403 | Suspension immédiate et remplacement de l'IP |
| Saisie incomplète des données | Vérifier les restrictions de géolocalisation des IP |
| Délai de connexion | Augmenter le délai d'attente à 30 secondes |
séance de réflexion
Q : Est-il légal d'utiliser un proxy IP ?
R : Tant que vous ne touchez pas à vos informations personnelles et à vos secrets d'affaires, la collecte normale de données publiques ne pose aucun problème. Les adresses IP d'ipipgo sont des ressources ordinaires des opérateurs, et vous pouvez donc les utiliser de manière pratique.
Q : Les proxys gratuits fonctionnent-ils ?
R : vous goûtez, vous êtes bien - pool IP gratuit, il peut y avoir 100 personnes en même temps avec la même IP, le site ne scelle pas seulement étrange ! ipipipgo agent exclusif bien que coûteux, mais le taux de réussite a doublé.
Q : Comment puis-je savoir si une procuration est en vigueur ?
R : Ajoutez une étape de test dans le code :
test_ip <- GET("https://api.ipify.org", use_proxy(proxy))
cat(content(test_ip, "text")) devrait afficher l'IP du proxy
Stratégie de capture améliorée
Il ne suffit pas d'être un agent, il faut être tactique :
1. hibernation aléatoire pendant 0,5 à 3 secondes pour imiter le fonctionnement humain
2. utilisation mixte de PC et d'agents utilisateurs mobiles
3. décentraliser les demandes avec les nœuds mondiaux d'ipipgo
4. activer la fonction de réessai automatique pour les tâches importantes
Enfin, le plus grand avantage de l'utilisation d'ipipgo depuis deux ans est la rapidité de réponse de leur service clientèle. Une fois, j'ai rencontré un problème technique à 3 heures du matin, l'ordre de travail 10 minutes pour répondre, vraiment fiable. Les nouveaux utilisateurs n'oublient pas de s'inscrire pour recevoir 2G de trafic à l'essai, de quoi attraper un petit million de pages.

