爬虫实战——三大指数之微博指数(上)

(本人原创,谢绝转载)

最近,豇豆哥写了关于一系列的爬虫,其中三大指数就是最近着手写,今天先给大家分享第一指数:微博指数

分析:

首先打开微博指数的首页微指数首页,我们采用关键词iPhone作为搜索条件,同时开启fiddler抓包工具。这里说明一下:

爬虫实战——三大指数之微博指数(上)_第1张图片

在fiddler设置一下过滤条件,就能过滤掉无用杂乱的其他数据,剩下的数据就是你所需要的。

我们访问iPhone的微指数抓图下来可以看到这些数据:

爬虫实战——三大指数之微博指数(上)_第2张图片

然后返回fiddler,豇豆哥一般不喜欢用chrome或者firefox的抓包工具,太复杂,太繁琐(fiddler可谓爬虫抓包神器,不会的同学一定要学!!!)

爬虫实战——三大指数之微博指数(上)_第3张图片

通过查看,找到了我们想要的源码数据,这下就好。带入参数,请求这个网页,他的返回值就是我们需要的,以上是分析过程。

编写程序:

分析完成之后,我们就着手写程序,豇豆哥写爬虫有个习惯是:

1、请求网站,我一般都会请求该网页的原网站。

2、最喜欢的库就是requests库,特别是涉及到模拟登陆的时候,这个库能大大提升你的编程效率。

3、喜欢用自己的小工具,在headers这块自己开发了一个小程序,非常快速的获取headers。

ok习惯讲完了。我们开始写程序了:

上面分析,豇豆哥找到了所需要访问的网站,那么这个网站需要传入那些参数了?可以查看fiddler的webforms,如下图:

爬虫实战——三大指数之微博指数(上)_第4张图片

网站是采用get方式传入的数据,需要的参数有wid,sdate,edate,__rdn,第一个参数我们不知道是什么含义,但是后面参数可以猜到起始时间,rnd是时间戳(http网络知识),都不影响网页的访问,我们就注重去获取wid的值。

获取wid值:

wid变量我们是不知道,根据经验来说,这块应该是在前面的网页中产生(动态js产生或者请求网页产生)。豇豆哥通过查找:1030000000269这个值,发现了wid的来源,如图:

爬虫实战——三大指数之微博指数(上)_第5张图片

可以看到,我们是通过搜索关键词:iphone,请求图中的网页后,他的返回值中刚好有:1030000000269 这个数值,找到这个数值之后,对于下一步的网页请求就简单了。

所以总结一下:

1、首先是分析网页结构,找到目标数据,分析数据来源。

2、找到参数关键字逐步网上层寻找关键字,并取得关键字的值

3、做好分析之后再开始编写程序。

目前进展:微博指数现在是放在我们的服务器上供我们使用。其中还需要编写api(会用到flask,redis等库,不展开讲)

你可能感兴趣的:(爬虫实战——三大指数之微博指数(上))