
Que faire lorsque le crawl PHP est ciblé par l'anti-crawl ? Essayez cette astuce
Les vieux briscards qui ont fait du web crawling comprennent que le mécanisme anti-climbing du site cible est comme un sucre de velours dont on ne peut se défaire. Les erreurs 403, 429 sont quotidiennes, l'IP est bloquée est un phénomène courant. À l'heure actuelleIP proxyC'est une bouée de sauvetage, surtout si vous utilisez PHP pour le crawling, cette chose vous permettra de contourner le moniteur du site et de devenir "l'homme aux mille visages".
Comment jouer avec les IP proxy pour le reverse crawling ?
Les sites web recherchent trois éléments principaux pour identifier un crawler :Fréquence des demandes, caractéristiques comportementales, traces IPLa première chose à faire est d'utiliser une seule adresse IP pour effectuer une demande frénétique. Faire une demande frénétique avec une seule IP, c'est comme traverser un supermarché 100 fois de suite sans passer à la caisse : qui le vigile va-t-il regarder si ce n'est vous ? La beauté des IP proxy est la suivante :
| tactique anti-escalade | Programme de réponse à la PI par procuration |
|---|---|
| Limitation de la fréquence IP | Commutation automatique de différents IP d'exportation |
| Analyse du comportement des utilisateurs | Simuler les empreintes digitales de différents appareils |
| Liste noire d'adresses IP | Rotation massive du pool IP |
Configuration du proxy réel de PHP - battement d'étapes
Voici un exemple de ce que vous pouvez faire avecipipgoLe service proxy pour donner un marron, leur famille fournit API pour obtenir le dernier proxy directement. Tout d'abord, le code de base complet :
// Obtenir l'IP du proxy (en utilisant l'exemple d'API d'ipipgo ici)
$proxy = json_decode(file_get_contents('https://api.ipipgo.com/getproxy')) ;
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, "destination URL") ;
curl_setopt($ch, CURLOPT_PROXY, $proxy->ip.':'.$proxy->port) ;
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy->username.':'.$proxy->password) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
$result = curl_exec($ch) ;
Voici le point clé :réglage du délai d'attentePour être inférieur au temps de réponse du proxy (recommandé 3-5 secondes), le décalage rencontré coupe immédiatement l'IP suivante. plus le délai aléatoire plus réaliste :
// attendre aléatoirement 1 à 3 secondes
usleep(rand(1000000, 3000000));
Les techniques avancées de camouflage sont enseignées dans le cadre d'un ensemble de cours.
Il ne suffit pas de changer l'IP, il faut faire le tour de la question :
- User-Agent Rotation : Ne pas utiliser l'UA par défaut de CURL, préparer des douzaines d'UA de navigateurs courants sélectionnées de manière aléatoire.
- L'en-tête de la requête doit contenir un Referer, qui fait semblant de sauter du site.
- Conservez l'état de la connexion avec CookieJar, ne créez pas un nouveau cookie à chaque demande !
Donnez un exemple avec une tête camouflée :
$headers = [
'Accept : text/html,application/xhtml+xml',
'Accept-Language : zh-CN,zh;q=0.9',
'Referer : https://目标网站.com/'
] ;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers) ;
Scène de renversement courante AQ
Q : Combien de fois dois-je utiliser une adresse IP proxy et être bloqué ?
R : Vous devez choisir un proxy à haut niveau d'anonymat (nous recommandons le mixed dialling node d'ipipgo), car les proxys anonymes ordinaires exposent l'en-tête X-Forwarded-For.
Q : Lent comme un escargot à ramper ?
A : Vérifiez le temps de réponse du proxy, la latence moyenne du nœud d'ipipgo est inférieure à 200 ms, ce qui est beaucoup plus rapide que le proxy construit par l'entreprise elle-même.
Q : Comment choisir un fournisseur de services proxy ?
R : se concentrer sur trois choses : la taille du pool d'IP (ipipgo a plus de 200w), la prise en charge du protocole (pour prendre en charge socks5), la stabilité de l'API (mécanisme de relance en cas d'échec).
Suivez le guide pour éviter les pièges.
Quelques dernières leçons sanglantes :
- N'écrivez pas d'IP proxy mortes dans votre code, utilisez l'API Dynamic Get !
- site https pour utiliser le proxy tunnel, le proxy ordinaire signalera l'erreur SSL
- N'oubliez pas de lier différents serveurs mandataires pour les demandes asynchrones, et ne partagez pas une IP avec plusieurs demandes.
Utilisez ces conseils en conjonction avecipipgoLe service proxy fiable peut essentiellement prendre en charge le mécanisme anti-crawling de 90%. N'oubliez pas que la protection des sites web est également mise à jour et que les stratégies de crawling doivent être ajustées régulièrement pour maintenir des contre-mesures dynamiques.

