
Apprenez à utiliser Jsoup pour capturer des pages web sans bloquer l'IP !
Récemment, un certain nombre d'amis qui collectent des données se sont plaints auprès de moi, disant que le crawler Java est toujours bloqué au niveau de l'adresse IP. C'est quelque chose que j'ai trop expérimenté, l'année dernière pour surveiller les prix du commerce électronique, une journée peut être déclenchée plus d'une douzaine de fois le CAPTCHA. Plus tard, j'ai trouvé une astuce - Jsoup sur l'IP proxy, tout comme le port d'un gilet pare-balles, aujourd'hui l'expérience pratique de briser l'ouverture de la froissée pour vous dire.
Pourquoi dois-je utiliser une adresse IP proxy ?
Par exemple, si vous vivez dans un quartier où 100 personnes sont envoyées chaque jour dans le même supermarché pour acheter du sel, le supermarché ne manquera pas d'appeler la police le lendemain pour dire que quelqu'un thésaurise. C'est la même chose avec les systèmes de protection des sites web.Les accès très fréquents à partir d'une seule adresse IP déclencheront un contrôle des risques.La première chose à faire est d'utiliser le pool de serveurs mandataires dynamiques d'ipipgo. Utiliser le pool de serveurs mandataires dynamiques d'ipipgo équivaut à changer de tenue à chaque fois que vous sortez, et le site web ne reconnaîtra pas du tout la même personne.
Guide d'utilisation de base de Jsoup
Tout d'abord, j'ai trouvé comment récupérer des données nues avec Jsoup (n'oubliez pas d'ajouter le proxy à la fin) :
// La version de base du crawling
Document doc = Jsoup.connect("target url")
.timeout(5000)
.get() ;
Ce code saisit des pages statiques, mais c'est comme se promener dans la rue sans vêtements.Attrapé par la sécurité du site dans une minute.La question est de savoir comment mettre un gilet de mandataire sur ce code. Et voici le plus important : comment mettre un gilet d'agent sur ce code.
Pratique de l'accès IP par proxy
Prenons la procuration d'ipipgo comme exemple de deux postures courantes :
| mode (de vie) | exemple de code | Scénarios applicables |
|---|---|---|
| Agent global du système |
System.setProperty("http.proxyHost", "proxy.ipipgo.com") ; System.setProperty("http.proxyPort", "31152″) ; |
test simple |
| Connecteurs personnalisés |
Connexion conn = Jsoup.connect(url) .proxy("proxy.ipipgo.com", 31152) .userAgent("En-tête de navigateur déguisé") ; |
Recommandations pour les environnements formels |
En se concentrant sur la deuxième voie, leN'oubliez pas d'attribuer un User-Agent aléatoire.Le backend d'ipipgo peut directement générer des en-têtes de requête correspondants, comme dans un jeu de rôle, et modifier votre persona à chaque visite.
Manuel de dépannage des pièges courants
Q:Pourquoi y a-t-il un rapport de dépassement de délai alors que l'agent travaille ?
A:八成是代理服务器负载高了,ipipgo的「极速套餐」节点响应速度能压到200ms以内,就跟本地似的。
Q : Que dois-je faire si je n'obtiens qu'une page CAPTCHA ?
R : trois pistes pour résoudre le problème : 1. la fréquence des demandes n'est pas trop élevée 2. les cookies doivent être mis à jour régulièrement 3. changer l'agent résidentiel d'ipipgo, plus réaliste que l'IP de la salle du serveur.
Guide de sélection des paquets
Choisissez l'offre d'ipipgo en fonction des besoins de votre entreprise :
- Package longue durée" pour l'observation de l'opinion publique - IP Survival for 24 Hours
- Second Cut Package" pour l'acquisition de billets et de coupons - Changement automatique d'adresse IP en 5 secondes
- La collecte de données transnationales sélectionne les "lignes mondiales" - couvrant 195 pays.
Récemment, ils ont organisé un événement au cours duquel les nouveaux utilisateurs reçoivent un pack de trafic de 1G. Lors de l'inscription, remplissez le formulaire [JSOUP2023] pour recevoir plus d'heures 20%, testées personnellement. En cas de problèmes techniques, adressez-vous directement au service clientèle en ligne. La vitesse de réponse est au moins trois fois plus rapide que celle des autres utilisateurs.
lit. connaissance froide pour éviter les pièges
Certains sites détectent les empreintes TLS, et c'est à ce moment-là qu'il faut utiliser le logiciel ipipgoMode d'accès avancé à l'APILa première étape consiste à adapter automatiquement le protocole de cryptage du site web cible. Et ensuite de vous apprendre une opération sordide - la liste des IP proxy stockée dans Redis, lorsqu'elle est utilisée de manière aléatoire, afin que la collection distribuée de chaque nœud puisse pleuvoir de manière homogène.
Enfin, même si l'IP proxy peut réduire le risque de bannissement, il ne faut pas s'attaquer aux serveurs d'autrui. Fixez un intervalle de collecte raisonnable, avec la fonction intelligente de contrôle QPS d'ipipgo, c'est la solution à long terme. Le code est réécrit, mais il faut aussi prêter attention à un développement durable, n'est-ce pas ?

