
Les robots sont bloqués par l'adresse IP du site ?
Récemment, j'ai aidé un ami à récupérer les données de prix d'une plateforme de commerce électronique, et le résultat a été que seules 300 IP ont été bloquées. De nos jours, si vous êtes un crawler et que vous ne savez pas comment utiliser une IP proxy, c'est comme si vous couriez nu sur le champ de bataille. Aujourd'hui, nous allons voir comment utiliser la bibliothèque Jsoup de Java pour récupérer les données, en nous concentrant sur l'utilisation de l'IP proxy.Services proxy pour ipipgoMaintenir la paix.
Jsoup opération de base trois pièces
Commençons par le code le plus élémentaire :
// N'oubliez pas d'importer le paquet en premier !
import org.jsoup.
import org.jsoup.nodes.
public class BasicCrawler {
public static void main(String[] args) throws Exception {
Document doc = Jsoup.connect("https://目标网站.com")
.timeout(5000)
.timeout(5000) ; .get() ;
System.out.println(doc.title()) ;
}
}
Le problème avec ce code est comme une tique dans la tête - il est évident. Si vous exposez directement votre véritable IP, vous serez bloqué en moins d'une demi-heure. C'est alors qu'il est temps deIP proxy pour ipipgoSur le terrain.
La bonne façon d'ouvrir un proxy IP
Ajouter des proxys à votre code est en fait plus facile que de cuisiner des nouilles instantanées, il s'agit d'utiliser la bonne posture. Regardez ça :
// Voir ici pour les points forts !
public class ProxyDemo {
public static void main(String[] args) {
// Informations sur le proxy à partir d'ipipgo
String proxyHost = "gateway.ipipgo.com" ;
int proxyPort = 9021 ;
Chaîne username = "Votre numéro de compte" ; int
String password = "Votre mot de passe" ;
try {
Document doc = Jsoup.connect("https://目标网站.com")
.proxy(proxyHost, proxyPort)
.timeout(10000)
.header("Proxy-Authorisation", "Basic " +
Base64.getEncoder().encodeToString(
(nom d'utilisateur+" : "+mot de passe).getBytes())))
.get() ;
System.out.println("Occultation réussie ! Titre de la page : " + doc.title()) ;
} catch (Exception e) {
System.err.println("Retournement ! Message d'erreur :" + e.getMessage()) ;
}
}
}
En voici quelques-unsPoints pour éviter les pièges: :
- Ne soyez pas avare de votre délai d'attente, 8 secondes sont recommandées pour commencer.
- N'oubliez pas de gérer les problèmes liés aux certificats SSL (vous pouvez ajouter .ignoreHttpErrors(true))
- Le pool d'adresses IP doit être suffisamment important, il est recommandé d'utiliser le proxy résidentiel dynamique d'ipipgo.
Pratique : données sur les prix du commerce électronique
Supposons que nous voulions récupérer le prix d'un article d'un certain Est, la structure HTML ressemble à ceci :
<div class="price">
<span class="main-price">¥2999</span>
<span class="discount">Réduction totale de 500</span>
</div>
le code Java correspondant :
Elements prices = doc.select(".price . main-price") ;
for (Element price : prices) {
System.out.println("Prix actuel : " + prix.text().replace("¥", "")) ; }
}
À ce stade, si vous n'utilisez pas de proxy, vous serez reconnu comme un crawler en quelques minutes. Utilisez la fonctionAgents de rotation intelligentspour changer automatiquement d'adresse IP, ce qui est beaucoup moins gênant que de changer manuellement d'adresse IP.
Foire aux questions QA
Q : Que dois-je faire si l'adresse IP du proxy est invalidée après son utilisation ?
R : Cette situation est due à quatre-vingts pour cent à l'IP du site cible, qui a été tirée vers le noir. Suggestion :
1. vérifier que la fréquence des demandes n'est pas trop élevée
2. passer à l'offre de proxy résidentiel dynamique d'ipipgo
3. ajouter un mécanisme de basculement
Q : Comment définir l'en-tête de requête dans Jsoup ?
R : Appels en chaîne après .connect() :
.header("User-Agent", "Mozilla/5.0...")
.header("Accept-Language", "zh-CN")
Q : Comment choisir un package d'agent pour ipipgo ?
R : En fonction du scénario de l'entreprise :
| Type d'entreprise | Paquets recommandés |
|---|---|
| Acquisition de données à haute fréquence | Agents dynamiques d'entreprise |
| Surveillance à long terme | Proxy statique exclusif |
| Missions temporaires | forfait de paiement à l'utilisation |
Offre groupée de stratégies anti-blocage
Il ne suffit pas d'être un agent, il faut être associé à ces combinaisons :
- Temps de sommeil aléatoire (0,5-3 secondes)
- Remplacement de User-Agent
- Simulation de la trajectoire de la souris (avec Selenium)
- Élimination régulière des cookies
Un dernier mot du cœur : dans le domaine des reptiles.IP proxy stable et fiableC'est votre deuxième vie. Le fait de jeter votre propre serveur proxy prend du temps et demande beaucoup de travail, alors pourquoi ne pas utiliser un service professionnel comme ipipgo, et gagner du temps pour passer plus de temps avec votre famille ?

