php采用curl模仿登录人人网发布动态的方法


Posted in PHP onNovember 07, 2014

本文实例讲述了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);

//echo $content;exit;

$data = json_decode($content,true);

if($data["code"] == "0"){

 echo "发布成功!";

}else{

 echo "shit !!!";

}

最后就发布成功了,当然前面的数据库需要自己写一个吧,非常的简单的一个记录库也是你要发布的信息。录数据上去就可以了。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
PHP 在线翻译函数代码
May 07 PHP
php split汉字
Jun 05 PHP
php中日期加减法运算实现代码
Dec 08 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
PHP操作Postgresql封装类与应用完整实例
Apr 24 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 #PHP
php的curl封装类用法实例
Nov 07 #PHP
PHP使用ob_start生成html页面的方法
Nov 07 #PHP
PHP实现HTML生成PDF文件的方法
Nov 07 #PHP
PHP面向对象精要总结
Nov 07 #PHP
PHP使用feof()函数读文件的方法
Nov 07 #PHP
php几个预定义变量$_SERVER用法小结
Nov 07 #PHP
You might like
用PHP生成自己的LOG文件
2006/10/09 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
简单谈谈gulp-changed插件
2017/02/21 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
django使用admin站点上传图片的实例
2019/07/28 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Python网页解析器使用实例详解
2020/05/30 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
药物学专业学生的自我评价
2013/10/27 职场文书
领导接待方案
2014/03/13 职场文书
导师评语大全
2014/04/26 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
服务行业演讲稿
2014/09/02 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
经典导游欢迎词
2015/01/26 职场文书
2015年教学管理工作总结
2015/05/20 职场文书