
Tout d'abord, le proxy IP en Java peut finalement faire quoi ?
Par exemple, vous avez écrit un crawler pour capturer des données, mais le site web cible a bloqué votre adresse IP, vous avez donc besoin d'une adresse IP proxy.Je vais te trouver une nouvelle armure et me remettre au travail.En Java, la mise en place d'un proxy est en fait très simple, tout comme le fait de donner à un coursier un itinéraire de livraison différent, principalement en deux poses :
// Méthode 1 : Paramétrage global du système
System.setProperty("http.proxyHost", "121.40.62.18") ;
System.setProperty("http.proxyPort", "9020") ;
// Méthode 2 : Configuration d'une requête individuelle
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("121.40.62.18", 9020)) ;
URL url = new URL("http://目标网站") ;
HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy) ;
Deuxièmement, les compétences en matière de configuration du code
Utilisons maintenant le service proxy d'ipipgo comme exemple concret. Supposons que vous achetiez leurPaquet résidentiel dynamiqueL'adresse de l'API est https://api.ipipgo.com/getproxy, et le format de retour est IP:port:nom d'utilisateur:mot de passe.
// Exemple d'utilisation de HttpURLConnection
String proxyStr = "121.40.62.18:9020:user123:pass456" ; // l'obtient réellement de l'API
String[] parts = proxyStr.split(" :") ; // l'obtient réellement de l'API.
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(parts[2], parts[3].toCharArray()) ;
}
}) ;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(parts[0], Integer.parseInt(parts[1]))) ; }) ; } ; } ; } ; }
URL url = new URL("http://目标网站") ;
HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy) ;
conn.setRequestMethod("GET") ;
Bibliothèques tierces pour un jeu avancé
Si vous utilisez une bibliothèque tierce comme OkHttp, la configuration est plus souple. Voici un exemple derappel des clésLes problèmes liés aux certificats SSL, en particulier pour les requêtes HTTPS, ne doivent pas être négligés :
// Exemple de configuration OkHttp
OkHttpClient client = new OkHttpClient.Builder()
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("121.40.62.18", 9020)))
.proxyAuthenticator((route, response) -> {
String credential = Credentials.basic("user123", "pass456") ;
return response.request().newBuilder()
.header("Proxy-Authorization", credentials)
.build() ; })
})
.sslSocketFactory(sslSocketFactory, trustManager) // Ici pour gérer SSL
.build() ; }) .sslSocketFactory(sslSocketFactory, trustManager)
Quatre, la technologie noire de commutation dynamique des agents
Si vous faites de la collecte de données.IP fixe facilement bloqué. Commutation dynamique avec l'API d'ipipgo :
// Changer l'IP toutes les 10 minutes
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1) ;
scheduler.scheduleAtFixedRate(() -> {
String newProxy = getNewProxyFromAPI() ; // appelle l'API d'ipipgo pour obtenir la nouvelle IP
updateProxyConfig(newProxy) ; }, 0, 10, TimeUnit(0) ; }
}, 0, 10, TimeUnit.MINUTES) ; }
v. guide des problèmes courants de déminage
Q : Que dois-je faire si je ne peux pas me connecter à l'agent ?
R : Vérifiez d'abord les paramètres de la liste blanche, ipipgo doit lier l'utilisation de l'IP. Essayez ensuite de tester la connectivité du proxy directement avec la commande curl.
Q:Return 407 authentication error ?
R : Il y a 90 % de chances que le mot de passe du compte soit erroné, il faut faire attention à la casse. Il est recommandé d'utiliser Postman pour tester d'abord les informations d'authentification.
Q : La requête HTTPS a échoué ?
R : Les contextes SSL doivent être traités séparément. N'oubliez pas d'importer la chaîne de certificats.
VI. pourquoi ipipgo ?
Je suis sûre que j'aimerais me vanter de mes propres produits, mais je ne vais pas le faire, je vais simplement être honnête :
| Type d'emballage | Scénarios applicables | Avantage tarifaire |
|---|---|---|
| Dynamique résidentielle (standard) | Petits et moyens crawlers | 7,67 $/GB |
| Dynamic Residential (Entreprise) | Acquisition de données à grande échelle | 9,47 Yuan/GB |
| Maisons statiques | Opérations fixes à long terme | 35RMB/IP |
Mention spéciale pour leurLigne TKLe délai réel est inférieur à celui de la ligne ordinaire 40%, mais nous n'indiquerons pas les données spécifiques afin d'éviter de faire de la publicité. Si vous avez besoin de contacter le service clientèle pour tester l'IP.
Une dernière remarque : n'achetez pas un agent en vous basant uniquement sur le prix.Pureté IPC'est la clé. Certains forfaits bon marché utilisent l'IP de la salle du serveur, des minutes pour être identifié. Les proxies résidentiels d'ipipgo sont de vrais haut débit à domicile, cela est particulièrement évident dans la somme de contrôle de l'en-tête, X-Forwarded-For les valeurs de ces champs ont l'air réelles.

