freeking101的博客

优采云 发布时间: 2020-06-09 10:24

  此前我发布了一篇博客微博爬虫,每日百万级数据,并且把代码开源在了Github上,然后就有很多人联系我,也有公众号转载了这篇文章。

  不过对于微博爬虫,我还是发懵的,因为没有解决帐号池的问题,所以每晚百万级的数据,是有水份的。单单爬好友关系,这种简单数据可以达到百万级,如果爬关键词搜索的微博,或者一个人的全部微博,是达不到百万级数据这个量的。

  不过既然已然埋了坑,就要填!所以自从写了那片文章以后,就仍然想建立一个稳定的单机每日千万级的微博抓取系统。

  值得庆贺的是,这个问题如今早已全面解决了!也对微博爬虫有了更深层次的认识!

  目前微博一共有三个站点,分别是

  

  

  

  可以看见这三个站点的复杂程度是逐步增强的,很显然,如果能在最简单的完成的抓取,肯定不去复杂的起来抓,但是事实上,有的只能在复杂的抓取!

  那哪些任务是完成不了的呢?可以说,抓取一个人的全部微博,抓取好友关系,抓取个人信息,这些都能在这个站点完成。

  但是,就是有一个任务,实现不了,就是高级搜索

  可能你常常有这样的须要,比如近来卡介苗风波盛行,你要抓取7月10号到7月20号这段时间,提及到卡介苗这个关键词的微博。

  这显然是一个特别刚性的需求,这就要采用微博的中级搜索来完成了。

  对于中级搜索插口,微博三个站点的情况是:

  高级搜索入口:;f=s

  

  可以看见这儿可以筛选的条件是,类型,用户,时间,注意,这里的时间是以天为单位。

  下*敏*感*词*体搜索一个关键词,疫苗

  

  

  可以看见一页有10条搜索的结果,最多显示100页,也就是1000条结果,

  所以,一次搜索的结果,最多返回1000条微博,

  而这个站点的时间单位是天,所以例如搜索的时间段是10天,那么最多能抓取到10*1000=10000条数据。

  很遗憾这个站点没有中级搜索插口

  高级搜索入口:

  

  可以看见这儿可以筛选的条件是,类型,用户,时间,地区,注意,这里的时间是以小时为单位。

  

  这个站点一页是20条微博,最多50页,所以一次搜索也是最多返回1000条微博数据

  但是这个站点的时间单位是小时,

  所以诸如搜索的时间段是10天,那么最多能抓取到10*24*1000=240000条数据。

  所以仅仅中级搜索有可能须要用到,并且是你须要的搜索结果数据很大,并且筛选条件太细,比如地区,其他所有爬虫需求都可以通过这个站点来抓取,包括比较简略的中级搜索

   还是传统的验证码,5位数的数字字母组合

  

  这种验证码可以通过扫码平台解决。具体的登录代码参考这儿

  不过,由于你买的大号,可能因为频繁操作,被微博盯上了,登陆进去是帐号异常,这都会形成十分难受的验证码,如右图

  

  这种情况,我建议你舍弃医治吧,不要想着破解这些验证码了,所以通常买的大号,不是100%可以用,有一部分是异常帐号的!

  根据以上这种剖析之后,要想建立千万级别的爬虫系统,只要做一件事情建立帐号池。

  构建帐号池的步骤也十分简单:

  1. 购买大量帐号

  2. 登陆进微博,保存下cookie

  就这两步,以后每次恳求,只要随机从帐号池中选择一个帐号即可。

  对于和这两个站点的cookie是不同的,所以要建立两个帐号池,一个cn站点的,一个com站点的。

  这时候,你结合我之前写的项目WeiboSpider就可以轻松达到每日百万级的数据抓取了!

  注意这儿实际的抓取速率和你的帐号池大小和笔记本的带宽有很大关系,如果帐号池不大,请求的间隔延后就须要时间长一点,如果带宽小的话,每次恳求的历时也会长一点

  我的数据是,

  账号池里230个帐号新浪博客超级爬虫(网站推广工具) v14绿色版,每次恳求延后为0.1秒,可以达到三天200~300万的抓取结果。

  我仍然觉得,我里面建立的这个爬虫,已经占满了带宽!

  有一次,我又启动了一个爬虫程序,发现另一个爬虫,也可以达到三天200~300万的抓取速率,同时之前的爬虫也是在以三天200~300万的抓取速率在运行,

  所以,仅仅是因为CPU限制了爬虫的抓取量,而不是网路IO!

  所以只须要用多进程优化即可,这里推荐Redis-Scrapy,所有的爬虫共享一个Redis队列,通过Redis统一给爬虫分配URL,这样就是一个分布式的抓取系统了。

  可以分别布署在不同的机器上(如果一个机器带宽/CPU占用满了),或者就在一个机器上开多个进程即可。

  就这样,我开了5个进程,不敢多开,毕竟帐号池还是200多个。

  然后结果就是:

  

  一分钟可以抓取8000条数据新浪博客超级爬虫(网站推广工具) v14绿色版,一天可以达到1100万+

  这个抓取系统目前仍然在稳定运行

  所以就此实现了最初的目标,千万级别的微博爬虫系统

  至此,可以说,彻底解决了一切关于微博爬虫的问题!!!

  开源代码在这里,你须要添加自己的帐号池.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线