萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> curl 模擬登錄 實現教程

curl 模擬登錄 實現教程

  模擬登陸 126郵箱 ,人人網等 根據需要自行修改哈,代碼如下

  //模擬登陸 驗證碼的網站,首先獲取驗證碼圖片的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",

  );

  //驗證碼圖片的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 © 萬盛學電腦網 all rights reserved