curl 模擬登錄 實現教程_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:php生成Excel文件 實現代碼
      p有段日子沒有更新博客了,生怕被百度遺忘啊,biu~biu~.最近有個項目需要統計網站的url和title,保存在excel里面,下面是具體的代碼/p pre class=php name=code!--p //php生成excel報表,是通過發送header()頭信息完成的 header(Content-Type: application/vnd.ms-execl);

        模擬登陸 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);

      分享:PHP-redis命令文檔
      Redis本質上一個Key/Value數據庫,與Memcached類似的NoSQL型數據庫,但是他的數據可以持久化的保存在磁盤上,解決了服務重啟后數據不丟失的問題,它的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的數據類型都具有push/pop

      來源:模板無憂//所屬分類:PHP教程/更新時間:2015-02-04
      相關PHP教程