Maison  >  Article  >  développement back-end  >  PHP simule la connexion et obtient les données via CURL

PHP simule la connexion et obtient les données via CURL

不言
不言original
2018-04-03 15:21:291601parcourir


cURL est une puissante bibliothèque PHP. En utilisant la bibliothèque cURL de PHP, vous pouvez explorer simplement et efficacement les pages Web et collecter du contenu pour compléter les pages Web de connexion simulées fournies par Curl. Grâce à ses riches fonctions, les développeurs peuvent obtenir plus d'informations sur cURL à partir du manuel PHP.




/* Simulez la connexion et obtenez des données via CURL
Certains sites Web nécessitent une authentification par autorisation et vous devez vous connecter au site Web pour être valide.
Cela nécessite que curl définisse des cookies pour simuler la connexion à la page Web. Le curl de PHP est
efficace pour récupérer le contenu Web. élevé et prend en charge le multi-threading, tandis que file_get_contents() est légèrement moins efficace
. Le code pour simuler la connexion est le suivant :
*/
function login_post($url, $cookie, $post){
$ch = curl_init(); //Initialiser le module curl
curl_setopt($ch, CURLOPT_URL, $url); //Connectez-vous et soumettez l'adresse
curl_setopt($ ch, CURLOPT_HEADER, 0); //S'il faut afficher les informations d'en-tête
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0 //S'il faut afficher automatiquement les informations renvoyées<🎜); >
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); //Définir les informations du cookie et les enregistrer dans le dossier spécifié
curl_setopt($ch, CURLOPT_POST, 1); Mode POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//Informations à exécuter
curl_exec($ch); //Exécuter CURL);
curl_close($ch);
}
/*La fonction login_post() déclarée dans l'exemple ci-dessus doit fournir une adresse URL, un fichier cookie à enregistrer
et des données de publication (nom d'utilisateur, mot de passe et autres informations). que PHP est fourni avec La fonction http_build_query()
peut convertir le tableau en une chaîne connectée Si la connexion réussit via cette fonction, nous devons obtenir le
. informations sur la page de connexion réussie. Le code pour déclarer la fonction est le suivant :
*/
function get_content($url, $cookie){
$ ch = curl_init(); //Initialisez le module curl
curl_setopt($ch, CURLOPT_URL, $url); //Connectez-vous pour soumettre l'adresse
curl_setopt ($ch, CURLOPT_HEADER , 0); //S'il faut afficher les informations d'en-tête
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //S'il faut afficher automatiquement les informations renvoyées
curl_setopt($ch , CURLOPT_COOKIEJAR, $cookie);//Définir les informations du cookie et les enregistrer dans le dossier spécifié
$rs = curl_exec($ch); //Exécuter curl pour transférer le contenu de la page
curl_close($ch);
return $rs; //return string
}
/*
Utilisez curlopt_cookiefile dans get_content() pour lire les informations de cookie enregistrées lors de la connexion
Enfin, retournons le contenu de la page. obtenir les informations après une connexion simulée, c'est-à-dire
informations utiles qui ne peuvent être obtenues qu'après une connexion normale réussie. L'exemple de code suivant est
*/.
$post = tableau(
'_username' => 'g@ydma.cn',
'_password' => '123456',
'_submit' => ; 'Connexion'
);
$url = "http://www.ydma.cn/login/check" //Adresse de connexion et original L' le site Web est cohérent
$cookie = dirname(__FILE__).'/cookie_ydma.txt'; //Définir le chemin où les cookies sont enregistrés
$url2 = "http :// www.ydma.cn/course/59"; //L'adresse pour obtenir des informations après la connexion

login_post($url, $cookie, $post); // Appel de connexion simulée
$content = get_content($url2, $cookie); //Après vous être connecté, appelez la fonction get_content() pour obtenir les informations de page spécifiées après la connexion

@ unlik($cookie); //Supprimer le fichier cookie
file_put_contents('save.txt', $content); //Enregistrer le contenu de la page capturée

Recommandations associées :

Comment obtenir des paramètres avec # et d'autres symboles spéciaux dans l'URL en php


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!

Déclaration:
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