概述:
由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息。
虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了。
经过一番摸索,成功模拟新浪微博的登陆操作,项目使用的是Javascript语言,在ChromeExtension中运行, 跟大家分享一下这一过程和心得。
注意,本文写于2013.08.16,由于微博业务经常变化,随年月老去,文章可能不再适用。
正文:探索的过程
1. 了解大致过程
登陆微博,使用fiddler工具监视HTTP请求,截获如下操作:
可以看到在微博登陆的整个过程中,有四次重要的HTTP请求,分别是:
(1) GET /sso/prelogin.php
(2) POST /sso/login.php
(3) GET /ajaxlogin.php
(4) GET /u/2813262187
其中,sso是single sign on
sinaSSOController.preloginCallBack({"retcode":0,
"servertime":1376533839,
"pcid":"gz-7bdd82b8980057a8bbc1f86b21d5a86184dd",
"nonce":"R1KGHZ",
"pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443",
"rsakv":"1330428213",
"exectime":2})