当前位置:编程学习 > 网站相关 >>

curl 模拟登录

模拟登陆 126邮箱 ,人人网等 根据需要自行修改哈,代码如下

view plaincopy to clipboardprint?//模拟登陆 验证码的网站,首先获取验证码图片的cookie 
 
define('SCRIPT_ROOT',dirname(__FILE__).'/'); 
$cookieFile = SCRIPT_ROOT.'cookie.tmp'; 
/*模拟浏览器*/ 
$user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; 
//这里如果知道了cookie可直接发送到目标浏览器 
//$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE";  
$header = array (   
         "Host:login.biuman.com",    
        "Referer: http://www.biuman.com",   
);  


view plaincopy to clipboardprint?//验证码图片的url 
function getCookie($url){ 
    global $cookieFile;     
    $curl = curl_init (); // 启动一个CURL会话 
    curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址 
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查 
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在 
    curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的GET请求 
    curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 把返回来的cookie信息保存在文件中 
    $res = curl_exec($curl); 
    curl_close($curl); 
 

 
 
function login($url){ 
    global $cookieFile,$header,$agent; 
    $data = array( 
        'name'=>'biuman'  
    ); 
 
    $curl = curl_init (); // 启动一个CURL会话 
    curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址 
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查 
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在 
    curl_setopt ( $curl, CURLOPT_USERAGENT, $agent ); // 模拟用户使用的浏览器 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);  //设置头信息的地方   
    @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转     
    //curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的GET请求 
    curl_setopt ( $curl, CURLOPT_POST, 1 ); // 发送一个常规的Post请求 
    curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // Post提交的数据包 
 
    //curl_setopt ( $curl, CURLOPT_COOKIE, $cookie); // 直接发送cookie内容 
     curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile); //发送Cookie文件 
    curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环 
    curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 不显示返回的Header区域内容 
    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回 
    $res = curl_exec ( $curl ); // 执行操作 
    if (curl_errno ( $curl )) { 
        return '失败:Errno' . curl_error ( $curl ); 
    } 
    curl_close ( $curl ); // 关闭CURL会话 
    return $res;         
 

 
    //1. 
    $auth_url = "http://www.biuman.com/auth"; 
    getCookie($auth_url);  //获取验证码cookie 
 
    //2. 
    $url = 'http://www.biuman.com/home'; //登陆之后提交的url 
    $res = login($url); 
    print_r($res); 


 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,