PHP CURL模拟登陆保存COOKIE 二次获取登陆后页面内容
使用PHP CURL来采集数据的话,经常会遇到对方网站需要登录后才能查看,这个时候就需要用到PHP CURL带COOKIE访问功能,详细代码如下:
<?php function login_post($url, $cookie, $post){ $ch = curl_init(); //初始化curl模块 curl_setopt($ch, CURLOPT_URL, $url); //登录提交的地址 curl_setopt($ch, CURLOPT_HEADER, 0); //是否显示头信息 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //是否自动显示返回的信息 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); //设置cookie信息保存在指定的文件夹中 curl_setopt($ch, CURLOPT_POST, 1); //以POST方式提交 curl_setopt($ch, CURLOPT_POSTFIELDS, $post);//要执行的信息 curl_exec($ch);//执行CURL curl_close($ch); } function get_content($url, $cookie){ $ch = curl_init(); //初始化curl模块 curl_setopt($ch, CURLOPT_URL, $url); //登录提交的地址 curl_setopt($ch, CURLOPT_HEADER, 0); //是否显示头信息 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //是否自动显示返回的信息 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);//设置cookie信息保存在指定的文件夹中 $rs = curl_exec($ch);//执行curl转去页面内容 curl_close($ch); return $rs; //返回字符串 } $cookie=dirname(__FILE__)."/cookie.txt"; $post=array('action'=>'login','email'=>'webmaster@bnxb.com','password'=>'webmaster'); $url = 'https://partners.cloudflare.com/session-management.html'; $url2='https://partners.cloudflare.com/api/v4/analytics?continuous=true&since=-43200'; login_post($url, $cookie, $post);//调用模拟登录 $content = get_content($url2, $cookie); //登录后,调用get_content()函数获取登录后指定的页面信息 @unlink($cookie);//删除cookie文件 file_put_contents('save.txt', $content);//保存抓取的页面内容 ?>
顶(0)
踩(0)
- 最新评论