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

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

WBOY
WBOYOriginal
2016-05-23 08:33:591625Durchsuche

说到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 !!!"; 
}

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


本文链接:

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn