单日千万级微博爬虫介绍:
我也不喜欢说废话,来救直接上,项目要求爬微博,**存成四张表**,分别是用户信息表,用户和用户关系表,微博信息表,微博和微博关系表,改为分布式爬虫可实现单日1000+的数据量,直接开始干把
-
准备:
首先你的准备好几百个微博账号,并获取cookie,楼主借鉴网上很多大神的方法,也是通过访问手机端拿到cookie,http://weibo.cn,比较简单,并且验证码是四宫格,相比于其他验证码,简单,网上很多破解的教程,这里不赘述,
然后就是代理池,微博那么大的数据量肯定是需要用代理的 -
思路:
通过观察手机端网页我们可以发现,微博的几个信息是可以构建的,user_info 可以在微博uid后面加上info,就能访问到详情页,同样,fans可以访问到粉丝页,profile可以访问到微博页,所以我们仅仅需要得到uid就够了,然后具体的请求再调用不用的collback即可 -
过程:
1:找到一个uid作为种子,爬去他的粉丝,再将粉丝的uid又作为种子,指数爆炸的抓取uid2:例如uid=12345678911,然后构建三个请求,http://weibo.cn/12345678911/info, http://weibo.cn/12345678911/fans,http://weibo.cn/12345678911/profile,三个请求,这三个请求分别对应的是用户详情,用户粉丝,用户微博,然后就是码代码对每个请求做不同的处理了,这个就是基本的字符串之类的操作了,略过了就 3:上面就已经实现了基本的逻辑,然后接下来就是控制请求了,如果让他一直按上面那样跑下去,uid会越来越多,就算是存在redis中,也会受不了的,所以有必要控制下请求的个数,我是在callback中进行一个计数,如:这个callback处理了多少条请求,就弹出一个用户id去构建请求,通过修改这个阀