curl 模擬登錄實(shí)現(xiàn)教程

字號(hào):


    模擬登陸 126郵箱 ,人人網(wǎng)等 根據(jù)需要自行修改哈,代碼如下
    //模擬登陸 驗(yàn)證碼的網(wǎng)站,首先獲取驗(yàn)證碼圖片的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可直接發(fā)送到目標(biāo)瀏覽器
    //$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE";
    $header = array (
    "Host:login.biuman.com",
    "Referer: ",
    );
    //驗(yàn)證碼圖片的url
    function getCookie($url){
    global $cookieFile;
    $curl = curl_init (); // 啟動(dòng)一個(gè)CURL會(huì)話
    curl_setopt ( $curl, CURLOPT_URL, $url ); // 要訪問(wèn)的地址
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 對(duì)認(rèn)證證書來(lái)源的檢查
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 從證書中檢查SSL加密算法是否存在
    curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 發(fā)送一個(gè)常規(guī)的GET請(qǐng)求
    curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 把返回來(lái)的cookie信息保存在文件中
    $res = curl_exec($curl);
    curl_close($curl);
    }
    function login($url){
    global $cookieFile,$header,$agent;
    $data = array(
    'name'=>'biuman'
    );
    $curl = curl_init (); // 啟動(dòng)一個(gè)CURL會(huì)話
    curl_setopt ( $curl, CURLOPT_URL, $url ); // 要訪問(wèn)的地址
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 對(duì)認(rèn)證證書來(lái)源的檢查
    curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 從證書中檢查SSL加密算法是否存在
    curl_setopt ( $curl, CURLOPT_USERAGENT, $agent ); // 模擬用戶使用的瀏覽器
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //設(shè)置頭信息的地方
    @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自動(dòng)跳轉(zhuǎn)
    //curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 發(fā)送一個(gè)常規(guī)的GET請(qǐng)求
    curl_setopt ( $curl, CURLOPT_POST, 1 ); // 發(fā)送一個(gè)常規(guī)的Post請(qǐng)求
    curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // Post提交的數(shù)據(jù)包
    //curl_setopt ( $curl, CURLOPT_COOKIE, $cookie); // 直接發(fā)送cookie內(nèi)容
    curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile); //發(fā)送Cookie文件
    curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 設(shè)置超時(shí)限制防止死循環(huán)
    curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 不顯示返回的Header區(qū)域內(nèi)容
    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 獲取的信息以文件流的形式返回
    $res = curl_exec ( $curl ); // 執(zhí)行操作
    if (curl_errno ( $curl )) {
    return '失敗:Errno' . curl_error ( $curl );
    }
    curl_close ( $curl ); // 關(guān)閉CURL會(huì)話
    return $res;
    }
    //1.
    $auth_url = "";
    getCookie($auth_url); //獲取驗(yàn)證碼cookie
    //2.
    $url = 'http://www.biuman.com/home'; //登陸之后提交的url
    $res = login($url);
    print_r($res);