Maison > Article > développement back-end > php curl simule la connexion et obtient une instance de données
cURL est une puissante bibliothèque PHP. L'utilisation de la bibliothèque cURL de PHP permet d'explorer des pages Web et de collecter du contenu de manière simple et efficace. Curl fournit une multitude de fonctions à partir du manuel PHP Get. plus d'informations sur cURL. Cet article prend comme exemple une connexion simulée à la Chine open source (oschina). Les amis qui en ont besoin peuvent se référer à
curl() de PHP est relativement efficace pour explorer les pages Web et prend en charge le multithreading, tandis que file_get_contents() L'efficacité est légèrement inférieure. Bien sûr, vous devez activer l'extension curl lorsque vous utilisez curl.
Pratique du code
Regardons d'abord la partie connexion du code :
//模拟登录 function login_post($url, $cookie, $post) { $curl = curl_init();//初始化curl模块 curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息 curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 curl_exec($curl);//执行cURL curl_close($curl);//关闭cURL资源,并且释放系统资源 }
La fonction login_post() initialise d'abord curl_init(), puis utilise curl_setopt() pour définir les informations d'option pertinentes, y compris l'adresse URL à soumettre, le fichier cookie enregistré, les données de publication (nom d'utilisateur et mot de passe, etc.), si pour renvoyer des informations, etc., puis curl_exec Exécutez curl, et enfin curl_close() libère les ressources. Notez que http_build_query() de PHP peut convertir des tableaux en chaînes connectées.
Ensuite, si la connexion réussit, nous devons obtenir les informations de la page une fois la connexion réussie.
//登录成功后获取数据 function get_content($url, $cookie) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie $rs = curl_exec($ch); //执行cURL抓取页面内容 curl_close($ch); return $rs; }
La fonction get_content() initialise également curl d'abord, puis définit les options pertinentes, exécute curl et libère les ressources. Parmi eux, nous définissons CURLOPT_RETURNTRANSFER sur 1 pour renvoyer automatiquement les informations, et CURLOPT_COOKIEFILE peut lire les informations des cookies enregistrées lors de la connexion, et enfin renvoyer le contenu de la page.
Notre objectif ultime est d'obtenir les informations après une connexion simulée, qui sont des informations utiles qui ne peuvent être obtenues qu'après une connexion normale réussie. Ensuite, nous prenons comme exemple la connexion à la version mobile d'Open Source China pour voir comment capturer les informations après une connexion réussie.
//设置post的数据 $post = array ( 'email' => 'oschina账户', 'pwd' => 'oschina密码', 'goto_page' => '/my', 'error_page' => '/login', 'save_login' => '1', 'submit' => '现在登录' ); //登录地址 $url = "http://m.oschina.net/action/user/login"; //设置cookie保存路径 $cookie = dirname(__FILE__) . '/cookie_oschina.txt'; //登录后要获取信息的地址 $url2 = "http://m.oschina.net/my"; //模拟登录 login_post($url, $cookie, $post); //获取登录页的信息 $content = get_content($url2, $cookie); //删除cookie文件 @ unlink($cookie); //匹配页面信息 $preg = "/<td class='portrait'>(.*)<\/td>/i"; preg_match_all($preg, $content, $arr); $str = $arr[1][0]; //输出内容 echo $str;
Résumé d'utilisation
1. Initialisez curl
2. Définissez l'URL cible et d'autres options ;
3. curl_exec, exécutez curl ;
4. Après l'exécution, fermez curl ;
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.
Recommandations associées :
Connexion simuléeExplication détaillée des étapes d'exploration
connexion simulée et des étapes détaillées pour capturer des données
simulé logincapture Récupérer le code d'implémentation de la page
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!