网络爬虫Nutch和Heritrix简介
来源:互联网 发布:云数据库 mysql 编辑:程序博客网 时间:2024/05/18 01:09
网页下载过程中的网络延迟成为整个系统性能的瓶颈。为提高效率,网络蜘蛛设计成队列缓冲、多线程并行结构。网络蜘蛛的三大模块:
HTTP下载模块。利用HTTP协议下载,获取并存储网页内容。
链接分析模块。提取网页内的超链接,获取后续页面入口。
下载控制模块。控制网页访问次序、更新策略、访问队列高度等。
入口页面往往是网站的主页功sitemap页面。
Spider对网站的访问尝试一般控制在3~5层。
网络爬虫的优化策略和原则:
避免重复下载。
增加多个工作队列,提高并了能力。工作队列有:等待队列、处理队列、成功队列、失败队列。
利用网页Proxy缓冲,检查是否需要从远程下载。
同一站点的URL尽量映射到同一个线程处理,避免同时访问给网站带来负担。
与Nutch相比,Heritrix和Larbin没有与检索密切结合,用户需要自己负责文件格式的转换和索引工作。
下载后的数据存储主要以目录文件形式存放。具体见容包括:
Web数据库。实际上是URL数据库,只为网络爬虫服务,不参与后面的检索与加载工作。
数据段(segment)。它包括三种类型:待下载列表(fetchlist)、已获得的网页(fetcheroutput)、数据段索引(index)--采用Lucene格式索引当前已下载的索引。
数据索引。它是数据段索引的合并和汇集。
搜索引擎的3种分类:全网、垂直和企业搜索引擎。
网络爬虫的2种工作模式:互联网全网抓取和局域网抓取。
Nutch系统已经扩展了一套底层使用分布式结构的大型搜索引擎。
真实的互联网全网搜索引擎需要一个很大入口URL列表,DmozParser工具提供了对开放式互联网DMOZ目录库的支持。另一种方法是查找国内比较大的互联网站点,比如可以从互联网网站大全或网站排行榜里分析URL获得,在实际测试中采用了vipurls.txt文件,里面存放了100个比较大的国内互联网网站。
总体来说Heritrix网络蜘蛛的功能更为强大,Nutch更好地支持搜索引擎(与Lucene紧密结合)。两者特点对比如下:
Nutch是一个搜索引擎框架,而Heritrix专注于网络信息的下载。
Nutch只获取并保存可索引的内容,并可对下载后有内容过滤修改,而Heritrix则可以适用各种类型信息,严格保持网页原貌。
Nutch的更新策略是直接替换原来的旧网页,为索引作好准备;而Heritrix则保留历史内容,下载新内容。
都以任务形式管理,Nutch只支持命令行,Heritrix还支持Web控制界面。
Nutch下载控制参数少,Heritrix更加灵活。
Heritrix中有几个关键模块这里介绍一下:
下载控制器CrawlController。总控部分,以主线程形式运行。通过调试,最终把下载地址管理器Frontier中地址列表传递给线程池中的ToeThreads,完成下载任务。
边界控制器Frontier。用来确定下一个将抓取的网页。实现对网站访问的均衡处理,避免多线程同时访问同一个网站造成网站压力。Frontier内至少包含最新发现的URL、正在处理的URL、已经下载的URL。
服务器缓存Servercache。实现搜索引擎中的DNS缓存。Servercache中存放服务器的持久信息,包括IP地址、历史下载记录、机器人策略等。
开源缓存系统:
OSCache是很多Java项目中广泛采用的高性能J2EE缓存框架。OsCache适用于任何Java应用程序中的缓存方案。
JCS(JavaCaching System)是一个分布式缓存系统,是基于服务器的Java应用程序。
EHCache是一个纯Java实现的缓存系统,开发者调用EHCache的方式为嵌入用户系统的进程完成缓存。
JBossCache是针对JBoss服务器系统的缓存程序。JBossCache主要应用于事务处理缓存,能够缓存企业级应用数据。
- 网络爬虫Nutch和Heritrix简介
- 网络爬虫-Heritrix 和 Nutch比较与分析
- 网络爬虫-Heritrix 和 Nutch 比较与分析
- 网络爬虫-Heritrix 和 Nutch 比较与分析
- 网络爬虫-Heritrix 和 Nutch 比较与分析
- Heritrix 和 Nutch 比较与分析(java开源网络爬虫)
- Heritrix 爬虫与Nutch 爬虫
- 开源爬虫Labin,Nutch,Heritrix介绍和对比
- 网络爬虫(heritrix)
- Heritrix 和 Nutch的区别
- 网络爬虫Heritrix的运行
- heritrix nutch
- Nutch和Heritrix的区别汇总
- 头大的网络爬虫----Heritrix
- 网络爬虫系统Heritrix的结构分析
- heritrix网络爬虫存储路径设置
- nutch和solr做爬虫
- nutch和solr做爬虫
- ubuntu11.04下安装配置使用SVN
- 使用HttpClient时出错NoClassDefFoundError
- Apache/2.2.17 (Ubuntu) Server总结
- Tomcat安装,并与Apache整合,安装SVN-WebClient
- Ubuntu下ICTCLAS JNI的使用
- 网络爬虫Nutch和Heritrix简介
- Weka中使用libsvm
- Ubuntu下打开文件乱码及编码转换
- 从原始文档到KNN分类算法实现(一)
- 从原始文档到KNN分类算法实现(二)
- Java CookBook(一)
- Java CookBook(二)
- 聚类算法之KMeans(Java实现)
- 聚类算法之DBScan(Java实现)