程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP獲取Cookie模擬登錄CURL

PHP獲取Cookie模擬登錄CURL

編輯:關於PHP編程

要提取google搜索的部分數據,發現google對於軟件抓取它的數據屏蔽的厲害,以前偽造下 USER-AGENT 就可以抓數據,但是現在卻不行了。利用抓包數據發現,Google 判斷了 cookies,當你沒有cookies的時候,直接返回 302 跳轉,而且是連續幾十個302跳轉,根本抓不了數據。

因此,在發送搜索命令時,需要先提取 cookies 並保存,然後利用保存下來的這個cookies再次發送搜索命令即可正常抓數據了。這其實和論壇的模擬登錄一個道理,先POST登錄,獲取cookies並保存,然後利用這個cookies訪問就可以了。

 


一、定義Cookie存儲路徑

必須使用絕對路徑

$cookie_jar = dirname(__FILE__)."/pic.cookie";



二、獲取Cookie

將cookie存入文件

$url = "http://1.2.3.4/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
$content = curl_exec($ch);
curl_close($ch);




三、模擬浏覽器獲取驗證碼

該服務器驗證碼有漏洞,可以自己指定

取出cookie,一起提交給服務器,讓服務器以為是浏覽器打開登陸頁面

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://1.2.3.4/getCheckpic.action?rand=6836.185874812305');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($ch);
curl_close($ch);




四、POST提交

$post = "name=2&userType=1&passwd=asdf&loginType=1&rand=6836&imageField.x=25&imageField.y=7";    
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://1.2.3.4/loginstudent.action");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$result=curl_exec($ch);
curl_close($ch);




五、到指定頁面獲取數據

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://1.2.3.4/accountcardUser.action");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);        
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$html=curl_exec($ch);
// var_dump($html);
curl_close($ch);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved