网络爬虫种类繁多,下面进行很粗略的分类并说明网页抓取/数据抽取/信息提取工具包MetaSeeker中的爬虫属于哪一类。node
若是按照部署在哪里分,能够分红:正则表达式
1,服务器侧:通常是一个多线程程序,同时下载多个目标HTML,能够用PHP, Java, Python(当前很流行)等作,通常综合搜索引擎的爬虫这样作。可是,若是对方讨厌爬虫,极可能封掉服务器的IP,服务器IP又不容易改,另外耗用的带宽也是挺贵的。编程
2,客户端:很适合部署定题爬虫,或者叫聚焦爬虫。作一个与Google,百度等竞争的综合搜索引擎成功的机会微乎其微,而垂直搜诉或者比价服务或 者推荐引擎,机会要多得多,这类爬虫不是什么页面都取的,而是只取关心的页面,并且只取页面上关心的内容,例如提取黄页信息,商品价格信息,还有提取竞争 对手广告信息的。这类爬虫能够部署不少,并且能够颇有侵略性,对方很难封锁。服务器
网页抓取/数据抽取/信息提取工具包MetaSeeker中的爬虫属于客户端定题爬虫(更详细的产品特色),能够低成本大量部署,因为客户端IP地址是动态的,因此很难被目标网站封锁。网络
咱们只说定题爬虫,普通爬虫要简单的多,网上不少,若是从怎样提取数据上分,还能够分红两类:数据结构
1,经过正则表达式提取内容,HTML文件就是一个文本文件,直接使用正则表达式在指定地方提取内容便可,"指定地方"不必定是绝对定位,例如,能够参照HTML的标签订位,更准确多线程
2,利用DOM提取内容,HTML文件先转成DOM数据结构,再遍历这个结构提取内容。工具
有人会问,为何还要用DOM方式,转了一道?有不少DOM方式的存在理由:首先,DOM结构的分析都不用本身作,有现成的库,编程并无变复杂; 第二,能够实现很复杂可是很灵活的定位规则,而正则表达式很难写;第三,若是定位是要考虑HTML文件结构,用正则表达式不容易解析,HTML文件常常有 错,若是将这个任务交给现成的库,要容易不少。第四,假设还要解析Javascript的内容,正则表达式无能为力了,固然DOM方式本身也无能为力,但 是能够利用某个平台的能力,就有可能提取AJAX网站内容。还有不少缘由。网站
网页抓取/数据抽取/信息提取工具包MetaSeeker中的爬虫就就采用了DOM方式,它利用Mozilla平台的能力,只要是Firefox看到的东西,它都能提取。搜索引擎