php curl ne peut pas explorer

王林
Libérer: 2023-05-25 09:14:37
original
1144 Les gens l'ont consulté

Comment résoudre le problème selon lequel php curl ne peut pas explorer les données

Avec le développement rapide d'Internet, la technologie des robots d'exploration est devenue de plus en plus mature. Lors du développement de robots d'exploration, php curl est un outil de robot d'exploration classique. Cependant, certains développeurs peuvent rencontrer une situation dans laquelle les données ne peuvent pas être capturées lors de l'utilisation de php curl. Que doivent-ils faire dans ce cas ? Cet article présentera quelques raisons et solutions courantes pour lesquelles php curl ne peut pas capturer de données.

1. Aucune information d'en-tête ajoutée

Presque tous les sites Web vérifieront la requête http. Si les informations d'en-tête sont manquantes, l'accès est susceptible d'être refusé par le serveur. La solution consiste à définir les informations d'en-tête dans php curl. Vous pouvez utiliser la fonction curl_setopt pour le définir, comme suit :

$header = array(
    'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
Copier après la connexion

2 Saut non traité

Lors de l'utilisation de php curl pour explorer des pages Web, certains sites Web sauteront à ce stade. time, curl L'opération sera terminée par défaut. La solution consiste à ajouter l'option CURLOPT_FOLLOWLOCATION, comme suit :

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Copier après la connexion

3. Cookies non traités

De nombreux sites Web utiliseront des cookies pour enregistrer le comportement des utilisateurs. le robot d'exploration Il peut y avoir des problèmes avec le contenu. La solution consiste à utiliser la fonction curl_setopt pour définir les options CURLOPT_COOKIEFILE et CURLOPT_COOKIEJAR, comme suit :

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
Copier après la connexion

où $cookie est un chemin de fichier utilisé pour stocker les cookies non expirés.

4. Le délai d'attente n'est pas défini

Lors de l'exploration d'une page Web, si le temps de réponse du serveur est trop long, php curl peut être en état d'attente. Pour éviter cette situation, vous pouvez utiliser la fonction curl_setopt pour définir les options CURLOPT_TIMEOUT et CURLOPT_CONNECTTIMEOUT, comme suit :

curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
Copier après la connexion

Parmi elles, l'option CURLOPT_TIMEOUT représente le délai d'expiration de l'intégralité de la requête, en secondes ; L'option représente le délai d'expiration de la connexion au serveur. Temps en secondes.

5. Ne pas utiliser le bon proxy

Certains sites Web restreindront les requêtes provenant de la même adresse IP afin d'empêcher l'accès des robots. La solution est d'utiliser un proxy. Utilisez la fonction curl_setopt pour définir les options CURLOPT_PROXY et CURLOPT_PROXYPORT, comme suit :

curl_setopt($ch, CURLOPT_PROXY, '代理服务器地址');
curl_setopt($ch, CURLOPT_PROXYPORT, '代理服务器端口');
Copier après la connexion

6 La vérification SSL n'est pas activée

Certains sites Web doivent utiliser le protocole de cryptage SSL. pour la transmission des données. Si SSL n'est pas activé, vérifiez que php curl ne pourra pas capturer les données. La solution consiste à utiliser la fonction curl_setopt pour définir l'option CURLOPT_SSL_VERIFYPEER et l'option CURLOPT_SSL_VERIFYHOST, comme suit :

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
Copier après la connexion

Parmi elles, l'option CURLOPT_SSL_VERIFYPEER indique s'il faut vérifier le certificat homologue, utilisez false pour indiquer de ne pas vérifier. ; l'option CURLOPT_SSL_VERIFYHOST indique s'il faut vérifier le public dans le certificat. Si le nom correspond à l'URI, utilisez false pour indiquer aucune vérification.

Ce qui précède présente quelques raisons et solutions courantes pour lesquelles php curl ne peut pas capturer de données. Lorsque nous rencontrons un échec d'exploration, nous devons résoudre le problème étape par étape et utiliser diverses méthodes pour résoudre le problème. Je crois que tant que nous continuons à travailler dur, nous pouvons maîtriser la technologie du robot d'exploration php curl et mener à bien nos tâches de développement de robots.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!