专栏首页爬虫如何开发一套日抓取微博2000w+的微博爬虫(第一部分)
原创

如何开发一套日抓取微博2000w+的微博爬虫(第一部分)

废话不多说,先上图证明

上图是公司的内部系统,可以看到,查询的条件是发布时间,因此,1月17日这天的抓取量是1674万,接近于2000万,如果采集系统的节点投入多一点,达到2000万是毫无问题的。

先说说我的配置:微博爬虫一共使用7台服务器,配置都为4核8G 7M带宽 的腾讯云服务器,一年的费用大概在8万多元RMB。开始切入爬虫的技术

一.微博会封锁ip

微博会对访问的ip做出访问速度的限制,如果一个ip访问的速度过快,该ip会被封掉,因此在采集的过程中,需要使用到代理ip,我使用的代理ip为亿牛云,代理ip传输门

二.微博id是有迹可寻的

微博id一共有两种,一种是长id,类似于4329766707830771,一种是短id,类似于Hc51trvIN,在2018年的年尾,微博的开发人员对长id与短id的转换做了调整,目前长id与短id的转换规则未知,但这不是重点,重点是长id是可以遍历的

看图:

不知道读者们看出规律没有,这些查询出来的数据发布时间是一致的,也就是说,微博长id的前面14为与时间戳和微博内部的校验有关,二后面的部分,数值应该是无规律随机分布

三.从微博中获得一个能校验微博id是否为真的接口,即如何判定我们生成的微博id在新浪微博中存在,而这个接口必须要满足:不封ip,响应速度快;经过笔者对新浪微博的长期研究,发现了一个合适的接口可以当做校验使用,这个接口便是微博的投诉页面:

链接如下:http://service.account.weibo.com/reportspam?rid=4328823463760630&from=10106&type=1&url=%2Fdengchao&bottomnav=1&wvr=5

其中的rid即为微博长id;而这个链接经过笔者的试验,无论以多快的速度,无论开多少线程去访问都不会被封ip,而且访问速度上佳

四.微博按账户采集程序的设计

微博数据采集的基石是按账户采集,目前的采集方式有新浪微博的h5端,安卓手机端,pc web端,其中,pc web端的数据返回格式是非格式化的,微博的pc web的微博数据全部糅杂在一段html中,对采集的解析极其不友好

而h5端和app端是直接返回的json数据,你获取到了就可直接当做自己的:

因此,按账户采集数据,我首先选择的是从h5端和app端入手,而在18年之后,新浪在app端开始升级,对访问限制越来越严格导致代理ip资源越来越容易被封,在2019年年初,我的几台采集节点大多是这样子:

ip代理资源是越来越稀贵啊,而h5端,安卓手机端,pc web端这三个端,封ip是互不影响的,且封锁ip的严重程度排名是 h5端>安卓手机端>pc web端,因此,我对微博爬虫的逻辑进行了修改,首先对账户进行判断,使用的pc web端,先判断该账户是否当日发布过微博,如果发布过,则使用h5端或安卓手机端的接口对其进行数据采集,如果未发布,则直接跳过该账户,加上该逻辑后,程序输出是这样的:

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VeloCloud推出业界首款SD-WAN语音质量监控

    2016年11月14日,软件定义广域网(SD-WAN)公司VeloCloud Networks宣布推出业界首款SD-WAN解决方案提供全功能的语音质量监控(VQ...

    SDNLAB
  • 北大黄铁军:强AI的“仿真主义”和神经计算机的“五原则”

    【新智元导读】过去,大概有四种方法来实现某些人工智能:符号主义,联结主义,行为主义和统计学, 这四种方法在不同的角度抓住了智能的一些特点。北京大学计算机系主任黄...

    新智元
  • 手机上就能学!Pytorch深度学习教程在此,手把手教你从DQN到Rainbow

    这份Pytorch强化学习教程一共有八章,从DQN(Deep Q-Learning)开始,步步深入,最后向你展示Rainbow到底是什么。

    深度学习与Python
  • 90% 的人说 Python 程序慢,5 大神招让你的代码像赛车一样跑起来

    很多人抱怨说自己写的 Python 代码跑的慢,尤其是当处理的数据集比较大的时候,其实稍微改动几行代码就可以让你的代码性能提高好几倍,不信一起来看下面这个 5 ...

    崔庆才
  • linux系统MySQL主从同步--使用binlog日志方式

    声明: 如果您有更好的技术与作者分享,或者商业合作; 请访问作者个人网站 http://www.esqabc.com/view/message.html ...

    Mr.Vv
  • 手机上就能学!Pytorch深度学习教程在此,手把手教你从DQN到Rainbow

    这里有一份干货教程,手把手带你入门深度强化学习(Deep Reiforcement Learning),背景理论、代码实现全都有,在线领取无需安装哟!

    量子位
  • Pytorch深度学习

    这里有一份干货教程,手把手带你入门深度强化学习(Deep Reiforcement Learning),背景理论、代码实现全都有,在线领取无需安装哟!

    商业新知
  • 手机上就能学!Pytorch深度学习教程在此,手把手教你从DQN到Rainbow

    这份Pytorch强化学习教程一共有八章,从DQN(Deep Q-Learning)开始,步步深入,最后向你展示Rainbow到底是什么。

    代码医生工作室
  • 现实黑镜 | 面对死亡,你愿意将意识上传 获得“永生”吗?

    大数据文摘
  • 学界 | CMU通过机器学习「读心术」解码大脑复杂思想

    选自CMU 机器之心编译 参与:黄小天、Smith 近日,卡内基梅隆大学官网上发表了一篇题为《Beyond Bananas: CMU Scientists Ha...

    机器之心

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动