新浪微博爬虫:模拟登陆+爬取原始页面



最近搞科研,总要有数据,奈何新浪API限制太多。。。。。


网上的新浪爬虫教程太杂乱,就不能简单点让大家都看懂吗????


主要参考:

http://blog.csdn.net/bcj296050240/article/details/46685947

http://www.jianshu.com/p/36a39ea71bfd




用爬虫爬取新浪数据的两个大步骤:

模拟浏览器登录;

爬取数据;

解析数据;




模拟浏览器登录必不可少,像新浪这种动态反扒网站,大致登录流程是:

1)客户端向服务器发送预登陆申请,又服务器动态的为客户端生成servertime, nonce, pubkey等信息。

2)用户名、密码配合返回的servertime, nonce, pubkey等动态信息,生成动态秘钥,并且和其他参数一起POST给服务器。

3)服务器验证用户名、密码正确后,给客户端发送一个真正的登录地址。

4)客户端登录该真正的地址,才算登陆成功。。。。。。。。






1)如何获取服务器为客户端生成servertime, nonce, pubkey等动态的信息:

笼统地说,使用Fiddler抓包分析。具体的:

1)下载Fiddler,安装后打开即可。

2)使用(IE)浏览器登录一次微博,发现Fiddler抓包的记录如下:

右边,五个椭圆信息是动态生成的,具体的,实在请求【server_URL = "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)"】时生成的;所以代码应该如下:

server_URL = "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)"
response = urllib2.urlopen(server_URL).read()   # 获取网页内容
print 'response', response

解析response就可以得到servertime, nonce, pubkey, rsakv这四个信息了。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值