结论:采集全网一次的硬件支出大约是五百万人民币。
互联网变得越来越庞大和复杂,互联网上的资源类型也越来越丰富多样,最常见的 HTML 网页变得越来越复杂,因此全网数据采集涉及的技术要素非常多。
整个互联网已经变得异常庞大了,现在超过了 40 亿个在线网页,要完整采集整个互联网已经不可能实现了。
The size of the World Wide Web (The Internet)
如果只是大规模采集,并且仅仅考虑 HTML 页面,那么网络爬虫的硬件成本取决于以下几个因素:
- 采集网页链接的绝对数量
- 网页更新频率
- 每网页的内容质量要求
第一个,第二个很好理解,第三个解释一下:
由于网站变得越来越复杂,页面变动越来越频繁,采集一个网页的成本,和你希望数据有多完整密切相关。
在互联网早期,采集一个网页,就是一个简单的 HTML 文本,通常单个 HTTP 请求就能达到目的。在今天,要采集一个网页的完整内容,至少需要用一个真实浏览器来访问它,还要不断和网页进行交互,等待所有数据完整加载,这就意味着单个网页的采集成本大大提高。
事实上,Google 早就在用浏览器渲染采集网页了。我们还记得有一段时间 Google 推出一项功能,鼠标移到搜索结果页的记录上,可以显示整个页面缩略图。如果没有经过浏览器完整渲染一个网页,这是做不到的。
用浏览器渲染采集一个网页,其成本有多高呢?这也是每个网站都不同的。拿全球 TOP 1 电商为例,如果使用第三方云主机,每个页面大小大约 1.5 M, 综合成本大约 0.001 ~ 0.01 人民币,所以采集全网一次的成本就可以估算出来:
0.001 x 40 x 10^8 = 4000000
五百万人民币,这就是采集全网一次消耗的金钱。