由于需要项目需要管理微博平台内容,集成登录微博管理平台功能,所以在抓取网页基础上探索了一下浏览器模拟登录,已经实现登录功能,采用JQuery和php结合的方式实现的,其中需要注意跨域访问问题,代码如下:

'login.sina.com.cn','User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0','Accept' => '*/*','Accept-Language' => 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Accept-Encoding' => 'gzip, deflate','Referer' => 'http://login.sina.com.cn/','Connection' => 'keep-alive' );//base64加密后用户名private $su = '';//js加密后的密码private $sp = '';function __construct() {}//预登陆function pre_login() {// 用户名称base64加密-用于预登陆$this->su = base64_encode ( urlencode ( $this->username ) );// 预登陆url$pre_login_url = 'http://login.sina.com.cn/sso/prelogin.php?entry=account&callback=sinaSSOController.preloginCallBack&su=';$pre_login_url = $pre_login_url . $this->su . '&rsakt=mod&client=ssologin.js(v1.4.15)&_=' . time ();$return_val = $this->request_url ( $pre_login_url, null, $this->request_cookie, $this->request_headers);list ( $header, $body ) = explode ( "\r\n\r\n", $return_val, 2 );preg_match_all ( "/Set\-Cookie:([^;]*);/", $header, $matches );$info ['cookie'] = $matches;$info ['header'] = $header;$info ['content'] = $body;$this->request_cookie .= $matches;$body = str_replace('sinaSSOController.preloginCallBack(', '', $body);$json = str_replace(')', '', $body);$this->json_obj = json_decode($json);//ajax后变量重置,所以存到cookieparam::set_cookie('sina_su', $this->su);param::set_cookie('sina_cookie', $this->request_cookie);param::set_cookie('sina_servertime', $this->json_obj->servertime);param::set_cookie('sina_nonce', $this->json_obj->nonce);param::set_cookie('sina_rsakv', $this->json_obj->rsakv);//加密明文密码$this->ajax_pwd_encode();}//根据预登陆返回信息,登录function account_login() {//登录url$login_url = 'http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_='.time();$this->request_headers['Content-Type'] = 'application/x-www-form-urlencoded';//登录所需数据$post_data['entry'] = 'account';$post_data['gateway'] = '1';$post_data['from'] = '';$post_data['savestate'] = '0';$post_data['useticket'] = '0';$post_data['pagerefer'] = '';$post_data['vsnf'] = '1';$post_data['su'] = param::get_cookie('sina_su');$post_data['service'] = 'sso';$post_data['servertime'] = param::get_cookie('sina_servertime');$post_data['nonce'] = param::get_cookie('sina_nonce');$post_data['pwencode'] = 'rsa2';$post_data['rsakv'] = param::get_cookie('sina_rsakv');$post_data['sp'] = $this->sp;$post_data['sr'] = '1366*768';$post_data['encoding'] = 'UTF-8';$post_data['cdult'] = '3';$post_data['domain'] = 'sina.com.cn';$post_data['prelt'] = '51';$post_data['returntype'] = 'TEXT';//登录$data = $this->request_url($login_url, $post_data, $this->request_cookie, $this->request_headers);//获取返回cookie 及 json数据list ( $header, $body ) = explode ( "\r\n\r\n", $data, 2 );//保存cookie$this->save_cookie($header);$json_login = json_decode($body);//访问返回json链接$domain_urls = $json_login->crossDomainUrlList;$i = 0;foreach ($domain_urls as $v) {$req_url = $v.'&callback=sinaSSOController.doCrossDomainCallBack&scriptId=ssoscript'.$i.'&client=ssologin.js(v1.4.15)&_='.time();$req_data = $this->request_url ( $req_url, null, $this->request_cookie, array());list ( $header, $body ) = explode ( "\r\n\r\n", $data, 2 );$this->save_cookie($header);$i ++;}}function save_cookie($header) {$headers = explode('\r\n', $header);foreach ($headers as $v) {$tmp = explode("\r\n", $v);foreach ($tmp as $it) {$pos = strpos($it, 'Set-Cookie');if ($pos !== false) {$cv = explode(":", $it);$this->request_cookie .= $cv[1].';';$_COOKIE[$cv[0]] = $cv[1];setcookie($cv[0], $cv[1], time()+60*60*24*30);param::set_cookie($cv[0], $cv[1]);}}}}//根据预登陆返回信息,登录function browser_login() {//登录url$login_url = 'http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_='.time();//登录所需数据$post_data['entry'] = 'account';$post_data['gateway'] = '1';$post_data['from'] = '';$post_data['savestate'] = '0';$post_data['useticket'] = '0';$post_data['pagerefer'] = '';$post_data['vsnf'] = '1';$post_data['su'] = param::get_cookie('sina_su');$post_data['service'] = 'sso';$post_data['servertime'] = param::get_cookie('sina_servertime');$post_data['nonce'] = param::get_cookie('sina_nonce');$post_data['pwencode'] = 'rsa2';$post_data['rsakv'] = param::get_cookie('sina_rsakv');$post_data['sp'] = $this->sp;$post_data['sr'] = '1366*768';$post_data['encoding'] = 'UTF-8';$post_data['cdult'] = '3';$post_data['domain'] = 'sina.com.cn';$post_data['prelt'] = '51';$post_data['returntype'] = 'TEXT';echo "";echo "";echo "";echo "";echo "";echo "";}function sina_login() {//获取加密后的密码$this->sp = $_GET['sp'];//账号登录$this->browser_login();}//调用js 加密密码function ajax_pwd_encode() {echo "";echo <

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

php rsa2 微博,php新浪通行证登录新浪微博登录模拟登录(浏览器版)2016相关推荐

  1. php 新浪通行证、新浪微博模拟统一登录 (后台网页抓取版) 2016

    前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例,下面是在phpcms中实现的,访问链接的方式与单独php项目有些差异,php单独项目时,对应访问的链接 ...

  2. php网站统一登录,php新浪通行证、新浪微博模拟统一登录(后台网页抓取版)2016

    前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例:具体都有备注,大家阅读代码吧. 'login.sina.com.cn','User-Agent' =& ...

  3. python 登录新浪微博_Python 模拟登录新浪微博

    在极客学院中看了一个关于爬虫的视频,然后自己实现一遍,并做此记录. 视频链接:http://www.jikexueyuan.com/course/995_4.html?ss=1 该文中的登录方式已经失 ...

  4. python 登录新浪微博_模拟登录新浪微博(Python)

    PC 登录新浪微博时, 在客户端用js预先对用户名.密码都进行了加密, 而且在POST之前会GET 一组参数,这也将作为POST_DATA 的一部分. 这样, 就不能用通常的那种简单方法来模拟POST ...

  5. php 新浪通行证登录 新浪微博登录 模拟登录 (浏览器版) 2016

    由于需要项目需要管理微博平台内容,集成登录微博管理平台功能,所以在抓取网页基础上探索了一下浏览器模拟登录,已经实现登录功能,采用JQuery和php结合的方式实现的,其中需要注意跨域访问问题,还要注意 ...

  6. 长微博工具-长微博生成器-新浪长微博-腾讯长微博-长微博转换器

    长微博,长微博生成器,长微博工具,新浪长微博,长微博转换器,新浪长微博生成器,新浪长微博工具,文字转换器 http://www.cwbgj.com/ 这是一个新兴的词汇,是随着微博的发展才出现的.正常 ...

  7. 按键精灵 新浪通行证,并开通博客

    新浪通行证,并开通博客 '前提: '1.安装按键精灵8 '2.安装锐马远程人工代答软件http://www.rapidhorse.com '3.关闭屏幕保护,设置屏幕分辩率为1024*768 '4.启 ...

  8. python爬虫登录微博_【新手学Python爬虫】微博网页PC端抓包分析和模拟登录

    本帖最后由 杀猪用牛刀 于 2020-4-2 23:59 编辑 首先我是一个python爬虫的新手,模拟登录也是我看b站模拟登录教学加自己琢磨完成的,其中很多分析很粗糙,还希望大家多多包涵:lol 话 ...

  9. python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...

    微信.知乎.新浪等主流网站的模拟登陆爬取方法 摘要:微信.知乎.新浪等主流网站的模拟登陆爬取方法. 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些 ...

最新文章

  1. magento常用软件
  2. python文件指针_在使用python写入文件之前,如何将文件指针放在上面一行?
  3. 迭代Iterator的用法
  4. java中 a_java中 a++ 和 ++a
  5. [Leedcode][JAVA][第98题][验证二叉搜索树]
  6. matlab上机实验1,上机实验1:熟悉matlab基本操作
  7. 技术专家:为什么我们最终选择Apache Pulsar替代Kafka?
  8. The idea of ​​router network configuration
  9. Linux之ls命令
  10. Excel打印时,如何带上当前时间~
  11. 从oracle到mysql,主从到分库,一个普通项目数据库架构的变迁
  12. windows下调整linux分区大小,如何在Windows 10/8/7中调整分区大小
  13. java疯狂讲义第四章练习题
  14. lintcode 丢鸡蛋
  15. 计算机科技英语论文,计算机科技英语论文大纲模板 计算机科技英语论文提纲怎么写...
  16. 解决:在 VSCode 中如何设置默认的浏览器为Chrome或Firefox
  17. PHP 对银行卡,手机号,真实姓名,身份证进行掩码加星号处理
  18. JAVA生成椭圆形签章
  19. 概念模型、数据模型、关系数据模型
  20. 有趣的密码学介绍~古典密码之凯撒密码来咯~

热门文章

  1. jquery 动态为ul添加li
  2. JavaBean、MVC设计模式与Java中Dao、Service、Controll三层体系
  3. C语言:计算数组元素平均值
  4. 2019-4-30今天给来学习的学员做了几道试题,提前祝大家劳动节愉快
  5. 防止网络攻击的10大网络安全措施
  6. php新浪微博第三方登录接口,手机第三方新浪微博登录php api实现分析
  7. java毕设项目酒店管理系统(附源码)
  8. 苹果健康的“人民战争”
  9. 正在解析主机,路由器打不开个别网页,已解决
  10. 一文详解自动驾驶的动态驾驶任务(DDT) | 自动驾驶系列