
Apprendre à utiliser PHP pour jouer avec le web crawling
De quoi le crawler a-t-il le plus peur ? Aujourd'hui, nous allons vous apprendre à utiliser la combinaison CURL + proxy IP en or, afin de vous assurer que vous collectez des données aussi stables que le vieux chien. Prenons le service de proxy d'ipipgo comme exemple, après tout, leur pool de proxy dynamiques est vraiment parfumé.
Ne soyez pas aveugle à l'installation d'extensions CURL
Aujourd'hui, PHP est livré avec CURL, mais il n'est pas garanti qu'il y ait une fuite. Ouvrez votre fichier php.ini et cherchez cette ligne :;extension=curlIl suffit de supprimer le point-virgule qui le précède. Vous n'arrivez pas à le faire fonctionner ? Allez directement voir l'administrateur du serveur et tapez sur la table !
// Vérifier si CURL est disponible
if (!function_exists('curl_init')) {
die('Dépêchez-vous d'installer l'extension CURL !) ;
}
Quatre étapes pour une collecte de base
Rappelez-vous ce modèle universel :
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, "destination URL") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
$output = curl_exec($ch) ;
curl_close($ch).
Attention aux nids-de-poule :N'oubliez pas d'ajouter le paramètre de délai d'attente ! Sinon, vous serez bloqué :
curl_setopt($ch, CURLOPT_TIMEOUT, 15) ; // flash si pas de réponse dans 15 secondes
La bonne façon d'ouvrir un proxy IP
Passez directement à l'exemple de configuration d'ipipgo :
curl_setopt($ch, CURLOPT_PROXY, 'gateway.ipipgo.com:9021') ;
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'account:password') ;
Il y a trois avantages principaux au pool de l'agence à domicile :
| Commutation automatique de l'IP | Nouvelle IP sur demande |
| Garantie de succès | 99% Mesure de la disponibilité |
| Prise en charge multiprotocole | HTTP/HTTPS/Socks5 de bout en bout ! |
Acquisition de la gestion des exceptions
1) Changez l'adresse IP lorsque vous obtenez un 403 et utilisez la fonction d'autopolling d'ipipgo.
2. ne pas oublier de transcoder les données brouillées :mb_convert_encoding($data, 'UTF-8')
3. effacer régulièrement les cookies :curl_setopt($ch, CURLOPT_COOKIESESSION, true)
Expérience pratique
Récemment, j'ai aidé un client à saisir des données sur les prix du commerce électronique, et l'IP unique ne pouvait pas durer plus de 10 minutes. Après avoir basculé vers le pool de proxy d'ipipgo, la collecte continue a duré 8 heures sans reprendre son souffle. Leur API peut également être consultée en temps réel, ce point est vraiment sans souci.
Foire aux questions QA
Q : Que dois-je faire si l'agent tombe soudainement en panne ?
A : Utilisez la fonction de nœud de secours d'ipipgo pour configurer deux adresses proxy afin qu'elles basculent automatiquement.
Q : Que dois-je faire si la vitesse de collecte ralentit ?
A:检查是不是开了设置,建议用并发采集+代理IP组合拳
Q : Comment puis-je savoir si une procuration est en vigueur ?
R : Mettez un débogage dans le code :curl_getinfo($ch, CURLINFO_PRIMARY_IP)Regardez l'IP renvoyée
Enfin, un conseil : n'utilisez pas de proxies gratuits ! La dernière fois que j'ai essayé une IP gratuite, 8 sur 10 étaient mauvaises, il vaut mieux acheter l'abonnement mensuel d'ipipgo, les nouveaux utilisateurs bénéficient toujours de 30% de réduction le premier mois.

