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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
用PHP动态创建Flash动画
Oct 09 PHP
php中的数组操作函数整理
Aug 18 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
php数组冒泡排序算法实例
May 06 PHP
php 多文件上传的实现实例
Oct 23 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
php 截取中英文混合字符串的方法
May 31 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 Token(令牌)设计
2008/03/15 PHP
php程序之die调试法 快速解决错误
2009/09/17 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php实现图片添加水印功能
2014/02/13 PHP
php生成zip文件类实例
2015/04/07 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Python中方法链的使用方法
2016/02/23 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
matplotlib绘制动画代码示例
2018/01/02 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
给幼儿园老师的表扬信
2014/01/19 职场文书
语文教学感言
2014/02/06 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
趣味运动会开幕词
2015/01/28 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
2019个人半年工作总结
2019/06/21 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏