今天在試著用curl登陸,驗證碼手動輸入。
問題和 如何用curl類比帶有圖片驗證碼的表單登入? 類似
而我的問題在於如何在拉取圖片的時候拿到session或者設定?
(那個問題的第一個答案並不能正確運行)
求大神解答。
回複內容:
今天在試著用curl登陸,驗證碼手動輸入。
問題和 如何用curl類比帶有圖片驗證碼的表單登入? 類似
而我的問題在於如何在拉取圖片的時候拿到session或者設定?
(那個問題的第一個答案並不能正確運行)
求大神解答。
$cookie_file = dirname(__FILE__).'/cookies/'.$user.'cookie.txt';// 初始化$curl = curl_init('http://');$header = array();$header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36';curl_setopt($curl, CURLOPT_HTTPHEADER, $header);// 不輸出header頭資訊curl_setopt($curl, CURLOPT_HEADER, 0);// 儲存到字串而不是輸出curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); //儲存cookies// post資料curl_setopt($curl, CURLOPT_POST, 1);// 請求資料curl_setopt($curl, CURLOPT_POSTFIELDS, $post);// 是否抓取跳轉後的頁面curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);$response = curl_exec($curl);curl_close($curl);
擷取session
自己改下,不是通用的。別來說不行
//擷取cookies值 private function getCookies(){ $curl = curl_init('http://113.57.132.2:83/login.aspx'); // 不輸出header頭資訊 curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_NOBODY, 1); // 偽裝瀏覽器 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'); // 儲存到字串而不是輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $rs = curl_exec($curl); curl_close($curl); preg_match('%ASP.NET_SessionId=.*?;%sim',$rs,$arr); $cookies=str_replace('ASP.NET_SessionId=','',$arr[0]); $cookies=rtrim($cookies,';'); return $cookies; //$this->$cookies=rtrim($cookies,';'); }