curl 模擬登錄 實(shí)現(xiàn)教程_PHP教程
推薦:php生成Excel文件 實(shí)現(xiàn)代碼p有段日子沒(méi)有更新博客了,生怕被百度遺忘啊,biu~biu~.最近有個(gè)項(xiàng)目需要統(tǒng)計(jì)網(wǎng)站的url和title,保存在excel里面,下面是具體的代碼/p pre class=php name=code!--p //php生成excel報(bào)表,是通過(guò)發(fā)送header()頭信息完成的 header(Content-Type: application/vnd.ms-execl);
模擬登陸 126郵箱 ,人人網(wǎng)等 根據(jù)需要自行修改哈,代碼如下
//模擬登陸 驗(yàn)證碼的網(wǎng)站,首先獲取驗(yàn)證碼圖片的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可直接發(fā)送到目標(biāo)瀏覽器
//$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE";
$header = array (
"Host:login.biuman.com",
"Referer: http://www.biuman.com",
);
//驗(yàn)證碼圖片的url
function getCookie($url){
global $cookieFile;
$curl = curl_init (); // 啟動(dòng)一個(gè)CURL會(huì)話
curl_setopt ( $curl, CURLOPT_URL, $url ); // 要訪問(wèn)的地址
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 對(duì)認(rèn)證證書(shū)來(lái)源的檢查
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 從證書(shū)中檢查SSL加密算法是否存在
curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 發(fā)送一個(gè)常規(guī)的GET請(qǐng)求
curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 把返回來(lái)的cookie信息保存在文件中
$res = curl_exec($curl);
curl_close($curl);
}
function login($url){
global $cookieFile,$header,$agent;
$data = array(
'name'=>'biuman'
);
$curl = curl_init (); // 啟動(dòng)一個(gè)CURL會(huì)話
curl_setopt ( $curl, CURLOPT_URL, $url ); // 要訪問(wèn)的地址
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 對(duì)認(rèn)證證書(shū)來(lái)源的檢查
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 從證書(shū)中檢查SSL加密算法是否存在
curl_setopt ( $curl, CURLOPT_USERAGENT, $agent ); // 模擬用戶使用的瀏覽器
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //設(shè)置頭信息的地方
@curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自動(dòng)跳轉(zhuǎn)
//curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 發(fā)送一個(gè)常規(guī)的GET請(qǐng)求
curl_setopt ( $curl, CURLOPT_POST, 1 ); // 發(fā)送一個(gè)常規(guī)的Post請(qǐng)求
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // Post提交的數(shù)據(jù)包
//curl_setopt ( $curl, CURLOPT_COOKIE, $cookie); // 直接發(fā)送cookie內(nèi)容
curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile); //發(fā)送Cookie文件
curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 設(shè)置超時(shí)限制防止死循環(huán)
curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 不顯示返回的Header區(qū)域內(nèi)容
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 獲取的信息以文件流的形式返回
$res = curl_exec ( $curl ); // 執(zhí)行操作
if (curl_errno ( $curl )) {
return '失敗:Errno' . curl_error ( $curl );
}
curl_close ( $curl ); // 關(guān)閉CURL會(huì)話
return $res;
}
//1.
$auth_url = "http://www.biuman.com/auth";
getCookie($auth_url); //獲取驗(yàn)證碼cookie
//2.
$url = 'http://www.biuman.com/home'; //登陸之后提交的url
$res = login($url);
print_r($res);
分享:PHP-redis命令文檔Redis本質(zhì)上一個(gè)Key/Value數(shù)據(jù)庫(kù),與Memcached類似的NoSQL型數(shù)據(jù)庫(kù),但是他的數(shù)據(jù)可以持久化的保存在磁盤(pán)上,解決了服務(wù)重啟后數(shù)據(jù)不丟失的問(wèn)題,它的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的數(shù)據(jù)類型都具有push/pop
- php生成Excel文件 實(shí)現(xiàn)代碼
- PHP-redis命令文檔
- PHP變量引用(&)、函數(shù)引用和對(duì)象引用
- CI中view的重寫(xiě) 代碼
- 如何在PHP語(yǔ)言中使用JSON
- PHP 轉(zhuǎn)義正則表達(dá)式字符: preg_quote
- PHP中的一些MySQL函數(shù)
- PHP提示:Fatal error: Allowed memory size of
- PHP設(shè)計(jì)模式之單例模式
- PHP制作百度詞典查詞采集器
- php+mysqli事務(wù)控制實(shí)現(xiàn)銀行轉(zhuǎn)賬實(shí)例
- php+mysqli批量查詢多張表數(shù)據(jù)的方法
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 小結(jié):PHP動(dòng)態(tài)網(wǎng)頁(yè)程序兩個(gè)有用的小技巧
- 十天學(xué)會(huì)php之第八天
- 如何修改和添加Apache的默認(rèn)站點(diǎn)目錄
- PHP中++i 與 i++ 的區(qū)別
- PHP執(zhí)行批量mysql語(yǔ)句的解決方法
- 解析Php如何實(shí)現(xiàn)自動(dòng)獲取關(guān)鍵詞
- 如何使用PHP調(diào)用TinyURL API
- file_get_contents("php://input", "r")實(shí)例介紹
- 基于php下載文件的詳解
- 基于curl數(shù)據(jù)采集之正則處理函數(shù)get_matches的使用
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-curl 模擬登錄 實(shí)現(xiàn)教程
。