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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
php控制文件下载速度的方法
Mar 24 PHP
php文件读取方法实例分析
Jun 20 PHP
php表单提交实例讲解
Nov 12 PHP
PHP可变函数学习小结
Nov 29 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP fprintf()函数用法讲解
Feb 16 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本地服务器分享
2013/02/19 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
js中substring和substr的定义和用法
2014/05/05 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
Python字符串转换成浮点数函数分享
2015/07/24 Python
python保存数据到本地文件的方法
2018/06/23 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书
一年级学生评语
2014/04/23 职场文书
小组名称和口号
2014/06/09 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
商务英语求职信范文
2015/03/19 职场文书
在校生证明
2015/06/17 职场文书
公司庆典主持词
2015/07/04 职场文书
护士工作心得体会
2016/01/25 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏