这是我自己开发的一个HTML PARSER 解析库,采用C语言实现。单个进程每秒能找出200多万个URL。
HTML解析是网络爬虫或网络蜘蛛(Crawler,or Spider)的重要环节,网页中的URL就是通过HTML解析得到。
我在开发网络爬虫时,最初采用Google/Gumbo-Parser来做HTML解析器。解析1000个网页耗时大概30分钟。按照这样速度,用10台机器,每台运行10个新进程,一天(24小时)只能解析500万个网页。这样的速度我很难接受。我的目标是1天需要解析大概1亿个网页。
Google说“Gumbo-Parser已在超过25亿个来自谷歌索引的页面中进行过测试”,不知道Google是怎样测试的?使用了多少机器,花多少时间?
由于我们的钱不如Google多,不能随意买来成百上千台机器做解析。于是决定自己编写一款HTML PARSER, 看看能否提高解析的效率。凭借多年C语言编程功底,经过努力,写出来,将它取名ETPARSER。
现在可以PK了:
1. Google的工程师想很周到,速度测试工具、网页已经包含在源代码包里了。只需将
gumbo-parser/benchmarks/benchmark.cc编译就OK了。我只是加了一些说明项,重新编译并运行: