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 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
php 获取全局变量的代码
Apr 21 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 PHP
给ECShop添加最新评论
Jan 07 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
完美解决PHP中文乱码
2009/11/26 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
javascript document.images实例
2008/05/27 Javascript
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
JS跨域总结
2012/08/30 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
详解python中的文件与目录操作
2017/07/11 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Python内存映射文件读写方式
2020/04/24 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
遗嘱继承公证书
2014/04/09 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
营销计划书范文
2015/01/17 职场文书
教师节慰问信
2015/02/15 职场文书
出国留学英文自荐信
2015/03/25 职场文书
女儿满月酒致辞
2015/07/29 职场文书
2019财务转正述职报告
2019/06/27 职场文书