您好,欢迎访问一九零五行业门户网

php模拟登陆抓取页面内容 curl使用方法

平时开发中经常会遇到抓取某个页面内容, 但是有时候某些页面需要登陆才能访问, 最常见的就是论坛, 这时候我们需要来使用curl模拟登陆。 大致思路:需要先请求提取 cookies 并保存,然后利用保存下来的这个cookies再次发送请求来获取页面内容,下面我们直接上代码
<?php /** * @brief php读取curl模拟登陆, 获取cookie, 带cookie进行请求 * @date: 2016/7/2 * @time: 9:41 */ //设置cookie保存位置 $cookiefile = dirname(__file__).'cookie.curl.tmp'; //第一步:获取cookie $url = 'http://www.pythontab.com'; $data = array( 'username' => 'pythontab', 'password' => 'pythontab', ); //curl初始化 $ch = curl_init(); curl_setopt($ch, curlopt_url, $url); //设置为post请求 curl_setopt($ch, curlopt_post, true); //设置附带返回header信息为空 curl_setopt($ch, curlopt_header, 0); //post数据 curl_setopt($ch, curlopt_postfields, $data); //cookie保存文件位置 curl_setopt($ch, curlopt_cookiejar, $cookiefile); //设置数据返回作为变量储存,而不是直接输出 curl_setopt($ch, curlopt_returntransfer, true); //执行请求 $ret = curl_exec($ch); //关闭连接 curl_close($ch); //第二步:附带cookie请求需要登陆的页面 $url = 'http://www.pythontab.com'; //curl初始化 $ch = curl_init(); curl_setopt($ch, curlopt_url, $url); //设置为post请求 curl_setopt($ch, curlopt_post, true); //设置附带返回header信息为空 curl_setopt($ch, curlopt_header, 0); //设置cookie信息文件位置, 注意与第二步中的获取不同,这里是读取 curl_setopt($ch, curlopt_cookiefile, $cookiefile); //设置数据返回作为变量储存,而不是直接输出 curl_setopt($ch, curlopt_returntransfer, true); //执行请求 $ret = curl_exec($ch); //关闭连接 curl_close($ch); //打印抓取内容 var_dump($ret);
其它类似信息

推荐信息