MetaSeeker工具包 是一套完整的网页内容抓取、格式化、数据集成、存储管理和搜索解决方案,此文简单介绍一下其网络爬虫的特点:
网络爬虫有多种实现方法,如果按照部署在哪里分,可以分成:
1,服务器侧:一般是一个多线程程序,同时下载多个目标HTML,可以用PHP, Java, Python(当前很流行)等做,可以速度做得很快,一般综合搜索引擎的爬虫这样做。但是,如果对方讨厌爬虫,很可能封掉你的IP,服务器IP又不容易 改,另外耗用的带宽也是挺贵的。建议看一下Beautiful soap。
2,客户端:一般实现定题爬虫,或者是聚焦爬虫,做综合搜索引擎不容易成功,而垂直搜诉或者比价服务或者推荐引擎,相对容易很多,这类爬虫不是什么页面都 取的,而是只取你关系的页面,而且只取页面上关心的内容,例如提取黄页信息,商品价格信息,还有提取竞争对手广告信息的,搜一下Spyfu,很有趣。这类 爬虫可以部署很多,而且可以很有侵略性,对方很难封锁。
MetaSeeker中的网络爬虫就属于后者。
如果从怎样提取数据上分,还可以分成两类,我们只说定题爬虫,普通爬虫要简单的多,网上大把。这两类是:
1,通过正则表达式提取内容,HTML文件就是一个文本文件,直接使用正则表达式在指定地方提取内容即可,指定地方不一定是绝对定位,例如,可以参照HTML的标签定位,更准确
2,利用DOM提取内容,HTML文件先转成DOM数据结构,在遍历这个结构提取内容。
MetaSeeker中的网络爬虫还属于后者。
有人会问,为什么还要用DOM方式,转了一道?有很多原因决定DOM方式的存在理由:
首先,DOM结构的分析都不用自己做,有现成的库,编程并没有变复杂;
第二,可以实现很复杂但是很灵活的定位规则,而正则表达式很难写;
第三,如果定位是要考虑HTML文件结构,用正则表达式不容易解析,HTML文件经常有错,如果将这个任务交给现成的库,要容易很多。
第四,假设还要解析Javascript的内容,正则表达式无能为力了,当然DOM方式自己也无能为力,但是可以利用某个平台的能力,就有可能提取AJAX网站内容。
还有很多原因。MetaSeeker工具包利用Mozilla平台的能力,只要是Firefox看到的东西,它都能提取。
爬虫的变种很多,仅讲这两个方面。
MetaSeeker工具包是免费使用的,下载地址:
www.gooseeker.com/cn/node/download/front