
Apprentissage pratique de l'utilisation de PHP pour obtenir une collection de pages web
La chose la plus effrayante à propos de la collecte de données est que l'IP sera bloquée ! Aujourd'hui, nous allons parler de la façon d'utiliser PHP CURL avec proxy IP pour garder la paix. Tout d'abord, j'ai un copain pour faire un site de comparaison de prix, n'a pas ajouté un proxy directement dur, les résultats du jour suivant, le serveur IP sur la station cible a tiré la liste noire, et maintenant changer pour utiliser le pool de proxy ipipgo jamais renversé.
Modèle de collecte de base (avec proxy)
function crawlWithProxy($url) {
$ch = curl_init() ;
// C'est là que le bât blesse ! Voici comment configurer le serveur proxy
curl_setopt($ch, CURLOPT_PROXY, 'proxy.ipipgo.com:9021') ;
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user name:password') ;
curl_setopt($ch, CURLOPT_URL, $url) ; curl_setopt($ch, CURLOPT_URL, $url).
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) ; // sauter l'authentification https
$output = curl_exec($ch) ;
if(curl_errno($ch)){
throw new Exception('Crawling error : '.curl_error($ch)) ;
}
curl_close($ch) ; }
return $output ; }
}
// Exemple d'utilisation
try {
$html = crawlWithProxy('http://目标网站.com') ; echo $html ; }
echo $html ; } catch(Exception $e) { $html
} catch(Exception $e) {
echo $e->getMessage() ; } catch(Exception $e) { echo $e->getMessage() ; }
}
surveiller attentivementSection Paramètres de l'agentLes adresses proxy fournies par ipipgo sont utilisées ici. Elles se présentent généralement sous la formeDomaine:PortSi vous souhaitez utiliser un proxy, vous devez penser à changer le mot de passe du compte pour celui que vous avez vous-même enregistré. L'avantage d'utiliser son proxy est que chaque demande change automatiquement d'IP, le site cible ne peut tout simplement pas sentir votre jeu.
Conseils de configuration avancée
Vous voulez rendre l'acquisition plus stable ? Ces paramètres doivent être ajustés :
// Fixer le délai d'attente en secondes
curl_setopt($ch, CURLOPT_TIMEOUT, 15) ;
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5) ;
// Déguiser les en-têtes du navigateur
$headers = [
'User-Agent : Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36', 'User-Agent : Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64)
'Accept-Language : zh-CN,zh;q=0.9'
] ;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers) ;
// Gestion automatique des redirections
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) ;
Note spéciale : avec ipipgo'sProxies statiques de longue duréeN'oubliez pas de définir la liste blanche en arrière-plan. Si vous utilisez un pool de proxy dynamiques, leur interface API peut directement obtenir la dernière liste de proxy, ce qui sera discuté plus tard.
Pièges courants du monde réel AQ
Q : Que dois-je faire si la procuration est toujours interrompue ?
R : Vérifiez d'abord que l'adresse et le port du proxy ne sont pas corrects, puis essayez d'ajuster le paramètre CURLOPT_CONNECTTIMEOUT. Si vous utilisez ipipgo rencontré cette situation, leur service à la clientèle vitesse de réponse voleur, fond soumettre un ordre de travail 5 minutes doit revenir.
Q : À quoi dois-je faire attention lorsque je collecte des données sur des sites web https ?
R : Définissez CURLOPT_SSL_VERIFYPEER et CURLOPT_SSL_VERIFYHOST sur false, ce qui n'est pas très sûr mais peut résoudre le problème. Vous pouvez aussi aller sur le site officiel d'ipipgo pour télécharger le certificat CA et spécifier le chemin d'accès au certificat.
Q : Comment changer automatiquement l'IP du proxy ?
R : Le service de proxy dynamique d'ipipgo est livré avec cette fonction, dans le code pour remplacer leur interface API sur la ligne. Par exemple :
$proxy = file_get_contents('https://api.ipipgo.com/dynamic?token=你的令牌') ;
curl_setopt($ch, CURLOPT_PROXY, $proxy) ;
Conseils pour l'utilisation d'ipipgo
Leurs agents sont répartis en trois paquets, qui sont choisis en fonction des besoins :
| Type d'emballage | Scénarios applicables | Configurations recommandées |
|---|---|---|
| rotation dynamique | acquisition haute fréquence | Changement automatique d'adresse IP sur demande |
| statique et durable | IP fixe requis | Cycle de validité de 24 heures |
| Personnalisé Exclusif | Exigences de l'entreprise | Pool exclusif de propriété intellectuelle + stratégies personnalisées |
N'oubliez pas de vous enregistrer en tant que nouvel utilisateur2G Free Traffic PackJe ne suis pas sûr que ce soit une bonne idée de l'utiliser, mais c'est suffisant pour tester. Il y a un avantage caché : dans le code avec leur nom de domaine alternatif proxy2.ipipgo.net, parfois le nom de domaine principal est bloqué par certains sites peuvent utiliser cela.
最后说个骚操作:把采集脚本放crontab定时跑的时候,记得在代码里加个随机sleep(mt_rand(1,5)),这样既模拟真人操作,又能避免触发目标网站的风控机制。配合ipipgo的代理,基本上可以做到无感采集,亲测有效!

