Home  >  Article  >  php教程  >  php curl模仿登录人人网发布动态实例

php curl模仿登录人人网发布动态实例

WBOY
WBOYOriginal
2016-05-23 08:33:591624browse

说到php中模仿登录很多人第一时间会想到curl函数系列了,这个没错本例子也是使用curl模仿登录之后再进行动态发布,原理也简单我们只要抓取人人网的登录信息,然后再由curl post登录数据上去就可以了,具体代码如下.

$rconfig = pdo_fetch("SELECT * FROM ".tablename("eduTwo_renren")." WHERE weid = :weid",array(':weid'=>$_W['weid'])); 
$cookie_file = dirname(__FILE__)."/renren.cookie"; 
$login_url = 'http://passport.renren.com/PLogin.do'; 
$post_fields['email'] = $rconfig['rusername']; 
$post_fields['password'] = $rconfig['rpassword']; 
$post_fields['origURL'] = 'http%3A%2F%2Fhome.renren.com%2FHome.do'; 
$post_fields['domain'] = 'renren.com'; 
 
$ch = curl_init($login_url); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
$content = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
//var_dump($info);exit; 
//匹配用户的ID 
$send_url='http://www.renren.com/home'; 
$ch = curl_init($send_url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
 
 
//$uid = "305115027"; 
//获取token和rtk 
$send_url=$info['redirect_url']; 
$ch = curl_init($send_url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
$tmp = curl_exec($ch); 
curl_close($ch); 
preg_match_all("/get_check:'(.*?)',get_check_x:'(.*?)',/is",$tmp,$arr); 
preg_match_all("/'ruid':'(.*?)',/is",$tmp,$utmp); 
//var_dump($utmp);exit; 
$token = $arr[1][0];//1121558104 
$rtk = $arr[2][0];//e9a9cb2 
$uid = $utmp[1][0]; 
//echo $token;exit; 
//发布信息 
$poststr['content'] = $_GPC['content'].$rconfig['tail']; 
$poststr['withInfo'] = '{"wpath":[]}'; 
$poststr['hostid:'] = $uid; 
$poststr['privacyParams'] = '{"sourceControl": 99}'; 
$poststr['requestToken'] = $token; 
$poststr['_rtk'] = $rtk; 
$poststr['channel'] = "renren"; 
$head = array( 
 'Referer:http://shell.renren.com/ajaxproxy.htm', 
 'X-Requested-With:XMLHttpRequest', 
); 
$ch = curl_init("http://shell.renren.com/{$uid}/status"); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'); 
curl_setopt($ch,CURLOPT_HTTPHEADER,$head); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
$content = curl_exec($ch); 
curl_close($ch); 
//echo $content;exit; 
$data = json_decode($content,true); 
if($data["code"] == "0"){ 
 echo "发布成功!"; 
}else{ 
 echo "shit !!!"; 
}

前面的数据库大写自己写一个吧,非常的简单的一个记录库也是你要发布的信息.


本文链接:

收藏随意^^请保留教程地址.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn