php采用curl模仿登录人人网发布动态的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-24 16:19:34 浏览: 评论:0
这篇文章主要介绍了php采用curl模仿登录人人网发布动态的方法,分析了curl登陆人人网的原理与具体方法,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了php采用curl模仿登录人人网发布动态的方法。分享给大家供大家参考。具体实现方法如下:
说到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);//www.phpfensi.com
- //echo $content;exit;
- $data = json_decode($content,true);
- if($data["code"] == "0"){
- echo "发布成功!";
- }else{
- echo "shit !!!";
- }
最后就发布成功了,当然前面的数据库需要自己写一个吧,非常的简单的一个记录库也是你要发布的信息。录数据上去就可以了。
希望本文所述对大家的PHP程序设计有所帮助。
Tags: curl模仿登录 php登录人人网
相关文章
- ·php curl模仿登录人人网发布动态实例(2015-04-11)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)