快捷搜索:   nginx

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'=>'[email protected]','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)

您可能还会对下面的文章感兴趣:

最新评论