phpcurlcookie
樓主可以借鑒下,首先,利用curl發送post請求登錄login.php,成功,並且保存了cookie文件。
第二步,post發送數據包到co_get_corule.php,失敗,得到登錄頁面的源碼。
於是,嘗試簡單的get請求,get獲取index.php,同上,依舊是cookie沒帶上的效果。
第三步,檢查cookie文件,確實存在,且內容也是正確的。如果樓主有時間的話,可以多去後盾人學習,裡面有不錯的東西
② php+curl 怎麼模擬cookie信息進行網頁抓取 在線等
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, '文件名'); // 將該次請求完成後 cookie信息保存到文件
curl_setopt($ch, CURLOPT_COOKIEFILE, '文件名'); // 這次請求過程中 用到的cookie信息 的文件
模擬cookie 你可以先curl一次那頁面 獲取到cookie之後 , 留待下次 用CURLOPT_COOKIEFILE 發送該段cookie 進行模擬
③ php,用curl寫個post登陸並取回cookies的代碼
要在文件中保存COOKIE的信息,你的curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_file);中的$cookie_file必須是要保存cookie信息的文件名,最最關鍵的一點,這個文件名是必須要帶絕對路徑,否則是不行的,如果文件帶上絕對路徑的話,會在文件中以Netscape格式保存所有的cookie信息。
還有一個需要說明的,COOKIE必須指定有效期,如果沒有指定有效期的話,默認的瀏覽器關閉COOKIE就失效。這種COOKIE信息在內存中存放,不會寫入硬碟的。
這兩個方面你都需要考慮。用絕對路徑,保存一個長效的COOKIE,肯定可以成功!
④ php如何帶cookies訪問需要登錄的網站
使用curl
CURLOPT_COOKIE 設定HTTP請求中"Cookie: "部分的內容。多個cookie用分號分隔,分號後帶一個空格(例如, "fruit=apple; colour=red")。
CURLOPT_COOKIEFILE 包含cookie數據的文件名,cookie文件的格式可以是Netscape格式,或者只是純HTTP頭部信息存入文件。
CURLOPT_COOKIEJAR 連接結束後保存cookie信息的文件。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 請求的地址
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiesfile); // 連接結束後保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiesfile); // 請求時發送的cookie信息文件
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);