curl 采集微博信息(模拟登录新浪微博)
来源:互联网 发布:name域名注册 编辑:程序博客网 时间:2024/06/02 07:27
实现效果登陆微博并且采集微博信息
效果展示:
这几天要做个获取新浪微博@我的信息, 又不用第三方登录,所以只能通过模拟登录来获取信息,研究的一下发现直接模拟登录微博比较困难,验证的算法比较复杂,于是绕道通过登录新浪通行证后来获取cookie 来获取信息,代码如下。
<?phpheader('Content-type:text/html;charset=utf-8');//微博登录地址$loginUrl = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543';//在当前文件下建立cookie目录 并且 创建对应的txt文件$cookie_file1 = dirname(__FILE__).'/cookie/cookie1.txt';$cookie_file2 = dirname(__FILE__).'/cookie/cookie2.txt';$cookie_file3 = dirname(__FILE__).'/cookie/cookie3.txt';$u = '微博用户名';$p = '微博密码';$username = base64_encode($u);$password = $p;//登录新浪通行证$loginData['entry'] = 'sso';$loginData['gateway'] = '1';$loginData['from'] = 'null';$loginData['savestate'] = '30';$loginData['useticket'] = '0';$loginData['pagerefer'] = '';$loginData['vsnf'] = '1';$loginData['su'] = base64_encode($u);$loginData['service'] = 'sso';$loginData['sp'] = $password;$loginData['sr'] = '1920*1080';$loginData['encoding'] = 'UTF-8';$loginData['cdult'] = '3';$loginData['domain'] = 'sina.com.cn';$loginData['prelt'] = '0';$loginData['returntype'] = 'TEXT';$login = json_decode(loginPost($loginUrl,$loginData),true);// var_dump($login);//获取微博cookie$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$login['crossDomainUrlList'][0]); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, 0 );curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 2 );curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file1); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file2); $return = curl_exec($ch);curl_close($ch);//通过获取的cookie 登录微博, 自动跳转$ch = curl_init();curl_setopt($ch,CURLOPT_URL,"http://weibo.com/5589516034/profile?topnav=1&wvr=6&is_all=1");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file2); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file3);curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 ); $return = curl_exec($ch);//$info = curl_getinfo($ch);curl_close($ch);echo $return;function loginPost($url,$data){ global $cookie_file1 ; //echo $cookie_file ;exit; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file1); $return = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); return $return;}?>
0 0
- curl 采集微博信息(模拟登录新浪微博)
- curl模拟登录新浪微博
- curl模拟登录新浪微博
- curl模拟登录新浪微博
- curl模拟登录新浪微博
- 模拟登录新浪微博
- PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
- 采集新浪微博
- httpClient4模拟登录新浪微博
- 模拟登录新浪微博(Python)
- scrapy模拟登录新浪微博
- node.js 模拟登录新浪微博
- C# 新浪微博模拟登录
- 模拟新浪微博wap登录
- java实现模拟登录新浪微博
- Python模拟新浪微博登录
- 新浪微博模拟登录 java实现
- scrapy模拟登录新浪微博
- 第九章 内核同步介绍
- gdi+的画图抗锯齿原理
- iOS 锁
- Mysql使用多列索引查询
- iOS9 wifi设置副标题
- curl 采集微博信息(模拟登录新浪微博)
- 动态链接库的创建和使用(基础版)——学习记录
- laravel上传图片调用接口,使用formData 上传图片 展示在本页面
- 2016年蓝桥杯省赛A组C语言(星系爆炸)计算日期
- 堆和栈的区别(转过无数次的文章)
- 策略模式
- Poj 2976 Dropping tests(01分数规划 牛顿迭代)
- curl模拟登录新浪微博
- Hybrid容器设计之第三方网站