php curl抓取网页指定内容(PHP模拟登录函数curl函数()(抓取网页) )

优采云 发布时间: 2021-09-10 06:06

  php curl抓取网页指定内容(PHP模拟登录函数curl函数()(抓取网页)

)

  curl比file_get_contents()更高效的网页抓取,支持多线程,curl提供了丰富的功能,可以轻松应用于webservice接口调用。

  

  分类:PHP> Curl 难度:初级

  下载资源下载积分:20积分

  模拟登录功能

  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资源,并且释放系统资源

}

  卷曲功能

  先初始化curl_init(),然后使用curl_setopt()设置相关选项信息,包括要提交的URL地址,保存的cookie文件,post数据(用户名密码等),是否返回信息等,然后 curl_exec 执行 curl,最后 curl_close() 释放资源。注意 PHP 自带的 http_build_query() 可以将数组转换为串联字符串。

  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;

}

  登录成功后获取数据

  最后我们以登录开源中国OSCHINA移动站为例,看看登录成功后如何抓取页面信息,即个人中心页面。

  $post = array(

'email' => 'hjl416148489_3@163.com',

'pwd' => '******',

'goto_page' => '/my',

'error_page' => '/login',

'save_login' => '1',

'submit' => '现在登录'

);

$url = "http://m.oschina.net/action/user/login"; //登录地址

$cookie = dirname(__FILE__) . '/cookie_oschina.txt'; //设置cookie保存路径

$url2 = "http://m.oschina.net/my"; //登录后要获取信息的地址

login_post($url, $cookie, $post); //模拟登录

$content = get_content($url2, $cookie); //获取$url2的信息

@ unlink($cookie); //删除cookie文件

$preg = "/(.*)/i"; //匹配页面信息

preg_match_all($preg, $content, $arr);

echo "昵称:" . $arr[1][0]; //输出内容

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线