
Tout d'abord, pourquoi le site web est-il toujours bloqué ? Lisez d'abord la routine anti-escalade
Le plus grand casse-tête pour les robots d'indexation est le fait que le fichierLimite de fréquence de la demande. Par exemple, un certain trésor de données de marchandises, 30 demandes consécutives ont été pincées connexion. Pour l'instant, ne vous précipitez pas pour écraser le clavier, le site est en fait en train de passer par le système de gestion de l'information.Suivi de l'IPpour identifier le comportement de la machine.
Prenons une anecdote : votre routeur a une adresse IP publique, tout comme l'adresse de livraison d'une commande de courrier. Le serveur web constate que cette adresse envoie 50 requêtes par minute et détermine directement qu'il ne s'agit pas d'une opération humaine. À ce moment-là, même si vous ajoutez un délai de sommeil dans le code, il peut aussi être interdit.
Deuxièmement, comment l'IP proxy est-elle devenue un dispositif de déverrouillage ?
Le principe est très simple...Plusieurs personnes partagent un pool d'adresses IP. Dans l'hypothèse d'un service proxy avec ipipgo qui bascule aléatoirement vers une IP différente pour chaque requête, le site web voit des journaux d'accès comme celui-ci :
| Demande de commande | Source IP | intervalle de temps |
|---|---|---|
| 1 | 221.192.136.12 | 3 secondes. |
| 2 | 120.244.62.18 | 5 secondes. |
| 3 | 183.128.240.66 | 2 secondes. |
De cette façon, le serveur pensera qu'il estPlusieurs utilisateurs réelsEn matière d'accès, la détection de fréquence d'IP unique est parfaitement contournée. Il s'agit de choisir un fournisseur de services disposant d'une réserve d'adresses IP suffisamment importante, comme ipipgo, pour éviter de réutiliser la même adresse IP.
Troisièmement, la main pour vous apprendre à jouer en agent PHP
D'abord le code principal, puis une analyse ligne par ligne :
$proxy = '221.192.136.12:8080' ; //adresse proxy de ipipgo
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, "https://目标网站.com") ;
curl_setopt($ch, CURLOPT_PROXY, $proxy) ;
curl_setopt($ch, CURLOPT_TIMEOUT, 15) ; curl_setopt($ch, CURLOPT_TIMEOUT, 15) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
$output = curl_exec($ch) ;
if(curl_errno($ch)){
echo 'Error code : '.curl_errno($ch).'. Suggérer de changer l'IP du proxy' ;
}
curl_close($ch) ; }
Paramètre focalisé Description :
- CURLOPT_PROXY doit être défini au format correct : IP:Port
- Il est recommandé que le délai d'attente soit inférieur à 15 secondes ; un délai trop long nuit à l'efficacité.
- N'oubliez pas de traiter les codes d'erreur, en particulier 28 (délai d'attente) et 7 (connexion refusée).
Quatrièmement, quels sont les avantages concrets de l'ipipgo ?
Après avoir utilisé 7 ou 8 services de proxy, j'ai finalement opté pour ipipgo pour les raisons suivantes :
1. taux de survie fiable - le 95%+ IP mesuré peut se connecter normalement 2. réponse suffisamment rapide - un délai moyen de 800 ms, bien mieux que certaines des 3 secondes d'immobilité 3. canal exclusif - les utilisateurs professionnels peuvent ouvrir un pool IP séparé 4. prix transparent - contrairement à certaines plateformes qui cachent des frais.
Un éloge particulier pour leurMécanisme de préchauffage IPLa disponibilité des adresses IP nouvellement ajoutées sera d'abord testée au moyen de requêtes à faible fréquence afin d'éviter de déclencher le contrôle du vent dès qu'elles se présentent.
Cinquièmement, le blanc doit voir pour éviter le guide de la fosse
Q : Les IP proxy ne fonctionnent pas lorsque je les utilise ?
R : Phénomène normal ! Il est recommandé de changer aléatoirement l'IP pour chaque requête, d'utiliser l'API d'ipipgo pour obtenir un pool d'IP dynamiques, il suffit d'ajouter un tableau d'interrogation dans le code.
Q : Mettre en place un proxy ou être bloqué ?
A : Vérifier trois points : 1. l'en-tête de requête n'a pas de caractéristiques de navigateur 2. l'intervalle de requête IP unique est trop court 3. faut-il déclencher l'authentification homme-machine ?
Q : Les proxys gratuits fonctionnent-ils ?
R : Les tests à court terme sont acceptables, mais vous devez absolument acheter un service commercial pour les projets formels. La disponibilité des proxys gratuits est généralement inférieure à 20%, et ils laissent échapper des données.
VI. Programme de configuration pour les joueurs de haut niveau
Partager un modèle de configuration pour ceux qui doivent explorer des millions de données chaque jour :
// Interface API d'ipipgo
$ip_api = 'https://api.ipipgo.com/get?format=json' ;
function getProxy(){
global $ip_api ;
$ips = json_decode(file_get_contents($ip_api),true) ;
return $ips['proxy_list'][array_rand($ips['proxy_list'])] ;
}
// Changement automatique d'IP à chaque requête
for($i=0 ; $i<1000 ; $i++){
$proxy = getProxy() ; // Nous reprenons ici le curl précédent.
// Nous reprenons ici là où nous nous sommes arrêtés avec le code curl
usleep(500000) ; // intervalle de 0,5 seconde
}
Ce programme permet d'atteindre les objectifs suivantsPool IP dynamique + délai aléatoireDouble protection, avec le package concurrentiel d'ipipgo, monter des millions de données par jour n'est pas un rêve.

