当前位置:首页 > 开发 > 互联网 > 正文

新浪微博爬虫模拟登陆

发表于: 2015-04-09   作者:随意而生   来源:转载   浏览:
摘要: 转载自:http://hi.baidu.com/erliang20088/item/251db4b040b8ce58ba0e1235     近来由于毕设需要,重新修改了新浪微博爬虫废了不少劲,希望下边的总结能够帮助后来的同学们。      现行版的模拟登陆与以前相比,最大的改动在于cookie获取时候的模拟url的请求

转载自:http://hi.baidu.com/erliang20088/item/251db4b040b8ce58ba0e1235

 

 

近来由于毕设需要,重新修改了新浪微博爬虫废了不少劲,希望下边的总结能够帮助后来的同学们。

     现行版的模拟登陆与以前相比,最大的改动在于cookie获取时候的模拟url的请求过程,其难点之一的密码加密并没有任何改动,因为此次的改动主要是重新理顺它的cookie获取过程中的几个url请求的节点。

     一、url请求流

        1、“http://www.weibo.com”,获取login_sid_t,uug等两个参数,在放入后续的请求cookie中。

        2、“HttpGet hg = new HttpGet(
    "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.11)&_="
      + (new Date()).getTime());”,即预登陆请求,获得serverTime,nonce,pubkey,rsaKV等参数,在加密和真正登陆时用。

      3、http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.11),开始真正的登陆,包括10几个参数,最关键的是加密参数。

      4、http://www.weibo.com/sso/login.php?ssosavestate=1392288155&url=http%3A%2F%2Fwww.weibo.com%2Fajaxlogin.php%3Fframelogin%3D1%26callback%3Dparent.sinaSSOController.feedBackUrlCallBack%26sudaref%3Dwww.weibo.com&ticket=ST-MjUxODM4ODMyMQ==-1389696155-xd-6F76C7CD412A0CEBEFA60811A545895B&retcode=0,这是在上个请求中得到的content的中得到的转向。

      5、“http://www.weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&sudaref=www.weibo.com”,得到上个请求中的cookies,加入该次请求中,得到此次的cookies,即可作为模拟抓取的cookies值。

 

二、在1、2、...5的5个请求中,需要抓包,分析每个cookies设置中的特殊之处,需要个人去分析一下,关键是要看懂第一大步。

      在4、5之间的转向很关键,如果用httpclient的自动转向会丢失cookie导致最后得到的cookie看上去是对的,其实是非法不对的。

故需要在4、5之间改成手动设置重定向之后的cookie设置,在此处我废了很大劲,以为httpclient会自动加载重定向前的cookie了。

 

 

新浪微博爬虫模拟登陆

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
概述: 由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息。 虽然在网上能找到不少信息,但由
前段时间有空,分析了一下新浪微博登陆验证,结合几篇文章摸了一些门道,但是最近比较忙,没时间继续
一直琢磨着写个爬虫玩,上学期都没实行,于是花了大概一天写了这个东西 其实半天就把程序调试好了,
一直琢磨着写个爬虫玩,上学期都没实行,于是花了大概一天写了这个东西 其实半天就把程序调试好了,
一直琢磨着写个爬虫玩,上学期都没实行,于是花了大概一天写了这个东西 其实半天就把程序调试好了,
一直琢磨着写个爬虫玩,上学期都没实行,于是花了大概一天写了这个东西 其实半天就把程序调试好了,
问题: 点击新浪登陆的网页中的输入框无法弹软键盘。 解决: mWebView.setOnTouchListener(new View
没有调用新浪的API,在程序中加入自己的帐号和密码就能发送微博,代码完全在后台运行,不用打开浏览
文章结束给大家来个程序员笑话:[M] //登岸人人代码 1 var casper = require('casper').create(); 2
首先我想告诉大家新浪微博API项目已经转移到GitHub上了,原Google Code (http://code.google.com/p/
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号