PHP CURL模擬登錄新浪微博抓取頁(yè)面內(nèi)容 基于EaglePHP框架開(kāi)發(fā)
更新時(shí)間:2012年01月16日 22:55:21 作者:
PHP CURL模擬登錄新浪微博抓取頁(yè)面內(nèi)容 基于EaglePHP框架開(kāi)發(fā),需要的朋友可以參考下。
復(fù)制代碼 代碼如下:
/**
* CURL請(qǐng)求
* @param String $url 請(qǐng)求地址
* @param Array $data 請(qǐng)求數(shù)據(jù)
*/
function curlRequest($url,$data='',$cookieFile=''){
$ch = curl_init();
$option = array(
CURLOPT_URL => $url,
CURLOPT_HEADER =>0,
CURLOPT_RETURNTRANSFER => 1,
);
if($cookieFile){
$option[CURLOPT_COOKIEJAR] = $cookieFile;
$option[CURLOPT_COOKIEFILE] = $cookieFile;
//$option[CURLOPT_COOKIESESSION] = true;
//$option[CURLOPT_COOKIE] = 'prov=42;city=1';
}
if($data){
$option[CURLOPT_POST] = 1;
$option[CURLOPT_POSTFIELDS] = $data;
}
curl_setopt_array($ch,$option);
$response = curl_exec($ch);
if(curl_errno($ch) > 0){
throw_exception("CURL ERROR:$url ".curl_error($ch));
}
curl_close($ch);
return $response;
}
function login($username,$password){
if($username && $password){
$preLoginData = curlRequest('http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su='.base64_encode($username).'&client=ssologin.js(v1.3.16)','',self::COOKIE_FILE);
preg_match('/sinaSSOController.preloginCallBack\((.*)\)/',$preLoginData,$preArr);
$jsonArr = json_decode($preArr[1],true);
if(is_array($jsonArr)){
$postArr = array(
'entry' => 'weibo',
'gateway' => 1,
'from' => '',
'savestate' => 7,
'useticket' => 1,
'ssosimplelogin' => 1,
'su' => base64_encode(urlencode($username)),
'service' => 'miniblog',
'servertime' => $jsonArr['servertime'],
'nonce' => $jsonArr['nonce'],
'pwencode' => 'wsse',
'sp' => sha1(sha1(sha1($password)).$jsonArr['servertime'].$jsonArr['nonce']),
'encoding' => 'UTF-8',
'url' => 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',
'returntype' => 'META'
);
$loginData = curlRequest('http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.16)',$postArr,self::COOKIE_FILE);
if($loginData){
$matchs = array();
preg_match('/replace\(\'(.*?)\'\)/',$loginData,$matchs);
$loginResult = curlRequest($matchs[1],'',self::COOKIE_FILE);
$loginResultArr = array();
preg_match('/feedBackUrlCallBack\((.*?)\)/',$loginResult,$loginResultArr);
//$userInfo = json_decode($loginResultArr[1],true);
//Log::info(var_export($loginResultArr[1]));
}else{
throw_exception('Login sina fail.');
}
}else{
throw_exception($preLoginData);
}
}else{
throw_exception('Param error.');
}
}
您可能感興趣的文章:
- php pthreads多線程的安裝與使用
- 使用pthreads實(shí)現(xiàn)真正的PHP多線程(需PHP5.3以上版本)
- php結(jié)合curl實(shí)現(xiàn)多線程抓取
- PHP使用CURL實(shí)現(xiàn)多線程抓取網(wǎng)頁(yè)
- PHP多線程抓取網(wǎng)頁(yè)實(shí)現(xiàn)代碼
- php利用curl抓取新浪微博內(nèi)容示例
- PHP 抓取新浪讀書(shū)頻道的小說(shuō)并生成txt電子書(shū)的代碼
- PHP實(shí)現(xiàn)采集抓取淘寶網(wǎng)單個(gè)商品信息
- PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容
- php使用pthreads v3多線程實(shí)現(xiàn)抓取新浪新聞信息操作示例
相關(guān)文章
PHP使用OCR技術(shù)識(shí)別圖片中的文字(無(wú)需接口)
tesseract-ocr是一個(gè)流行的開(kāi)源OCR引擎庫(kù),它使用C++編寫(xiě),?PHP作為一種流行的服務(wù)器端語(yǔ)言,也提供了一些ocr識(shí)別的庫(kù)和工具,可以通過(guò)tesseract-ocr識(shí)別PDF、JPEG、GIF、PNG等格式的圖像,?tesseract-ocr的最大特點(diǎn)是它是針對(duì)多語(yǔ)言設(shè)計(jì)的,可以識(shí)別世界上大部分語(yǔ)言的文本2024-04-04
PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能,結(jié)合實(shí)例形式詳細(xì)分析了php實(shí)現(xiàn)微信授權(quán)登錄功能的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-04-04
Mysql中l(wèi)imit的用法方法詳解與注意事項(xiàng)
mysql的數(shù)據(jù)一般都是用limit控制數(shù)量,它的使用方法也是需要注意的。2008-04-04
關(guān)于php 高并發(fā)解決的一點(diǎn)思路
涉及搶購(gòu)、秒殺、抽獎(jiǎng)、搶票等活動(dòng)時(shí),為了避免超賣,那么庫(kù)存數(shù)量是有限的,但是如果同時(shí)下單人數(shù)超過(guò)了庫(kù)存數(shù)量,就會(huì)導(dǎo)致商品超賣問(wèn)題。那么我們?cè)趺磥?lái)解決這個(gè)問(wèn)題呢,我的思路如下2017-04-04
PHP使用CURL實(shí)現(xiàn)下載文件功能示例
這篇文章主要介紹了PHP使用CURL實(shí)現(xiàn)下載文件功能,結(jié)合具體實(shí)例形式分析了php基于curl的文件下載實(shí)現(xiàn)技巧,代碼注釋有詳細(xì)的功能說(shuō)明,并附帶了curl參數(shù)的功能講解,需要的朋友可以參考下2019-06-06
PHP FileSystem 文件系統(tǒng)常用api整理總結(jié)
這篇文章主要介紹了PHP FileSystem 文件系統(tǒng)常用api,結(jié)合實(shí)例形式整理總結(jié)了php文件系統(tǒng)常用函數(shù)的功能、使用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07

