概述:

由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息。

虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了。

经过一番摸索,成功模拟新浪微博的登陆操作,项目使用的是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})