
Apprenez à collecter des données avec PHPcurl+Proxy IP à la main
Nous faisons de la collecte de données, la plus grande crainte étant de rencontrer le mécanisme anti-escalade du site web. La semaine dernière, un ami commerçant en ligne m'a demandé s'il avait utilisé PHPcurl pour écrire le script de collecte qui a soudainement échoué, le site directement vers son IP a été bloqué pendant trois jours. Il n'est pas difficile de résoudre ce problème, aujourd'hui je vais prendre ce cas, vous enseigner comment utiliser le service de proxy IP ipipgo pour faire face à l'anti-climbing.
// Exemple curl de base (qui sera bloqué tôt ou tard)
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, "http://目标网站.com") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
$output = curl_exec($ch) ;
Pourquoi dois-je utiliser une adresse IP proxy ?
De nombreux sites sont chargésSystème d'identification des empreintes digitales en fluxC'est comme la porte de sécurité d'un supermarché. Vous utilisez une IP pour accéder à plusieurs reprises, ce qui équivaut à la même personne une demi-heure entrant et sortant du supermarché 20 fois, les agents de sécurité ne vous dévisagent pas pour dévisager qui ? le proxy pool d'ipipgo a8 millions + IP dynamiquesCela revient à vous préparer de nombreux "gilets", afin que le site ne puisse pas distinguer qui est qui.
| prendre | Pas besoin d'agent. | Proxy avec ipipgo |
|---|---|---|
| Nombre de demandes par jour | ≤500 fois | ≥ 50 000 fois |
| probabilité de blocage de l'IP | 80% et plus | <3% |
La métamorphose dans le monde réel : le blindage des boucles par la propriété intellectuelle
Prenez le scénario qui vient d'être bloqué et transformez-le en trois étapes clés :
// Récupérer le proxy auprès d'ipipgo (attention à remplacer votre propre clé API)
$proxy = file_get_contents("https://api.ipipgo.com/getproxy?key=你的密钥") ;
// Configurer les paramètres du proxy curl
curl_setopt($ch, CURLOPT_PROXY, $proxy) ;
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP) ; curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP)
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10) ; curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10) ;
// Important ! N'oubliez pas d'ajouter une tentative d'erreur
if(curl_errno($ch)){
$proxy = file_get_contents("https://api.ipipgo.com/report?proxy=".$proxy) ; // signaler l'échec de l'IP.
// Récupérer le proxy pour continuer l'exécution...
}
Attention aux nids-de-poule :L'API d'ipipgo permet de filtrer les IP par région et par opérateur, vous pouvez utiliser cette fonction si vous effectuez des collectes transfrontalières.
Conseils pour améliorer l'efficacité de la collecte
1. acquisition multithread, chaque thread doit être équipé d'un proxy indépendant, ne pas laisser plusieurs requêtes partager la même adresse IP.
2. les intervalles entre les demandes sont fixés de manière aléatoire, les visites ne se font pas à l'heure comme un réveil.
3. n'essayez pas d'obtenir un captcha, changez d'adresse IP via ipipgo et réessayez.
4. effacer régulièrement les cookies, ne pas laisser le site suivre la trace du comportement
// Script de délai aléatoire (en secondes)
sleep(rand(1,5) + mt_rand(0,3000)/1000) ;
Foire aux questions QA
Q : Que dois-je faire si mon IP proxy tombe soudainement en panne ?
R : ajouter un mécanisme de signalement dans le callback d'erreur curl, le système d'ipipgo exclura automatiquement l'IP problématique lorsqu'il recevra un retour d'information.
Q : Comment puis-je savoir si une procuration est en vigueur ?
A : Imprimer curl_getinfo($ch, CURLINFO_PRIMARY_IP) après curl_exec pour voir si l'IP de sortie a changé
Q : Combien d'adresses IP proxy sont nécessaires par jour ?
R : En fonction du volume d'activité, 200 à 300 demandes par IP et par heure sont généralement plus sûres. Les forfaits d'ipipgo vont de la location journalière aux forfaits mensuels, et les nouveaux utilisateurs reçoivent 5000 IP de test.
Enfin, je voudrais vous rappeler que vous devez suivre le protocole des robots de site web lors de la collecte de données. L'utilisation du service proxy d'ipipgo n'a pas pour but de saboter, mais de faciliter notre collecte légitime. Une fois, j'ai aidé un client à réaliser un système de comparaison des prix. Après avoir utilisé un proxy dynamique, le taux de réussite de l'acquisition de données est passé de 47% à 98%, l'effet est immédiatement visible.

