`
wangwei3
  • 浏览: 120957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Heritrix中的SURT和SurtPrefixedDecideRule

阅读更多
在Heritrix中,如果我们需要抓取指定host的网页,需要用到SurtPrefixedDecideRule这个规则。

这里根据Heritrix的文档,解释一下SURT。

SURT全称是Sort-friendly URI Reordering Transform。

目的是将一个URL转换成更方便的格式进行处理。

....

SURT类可以将下面这种形式的URL:

scheme://userinfo@domain.tld:port/path?query#fragment

转换成:

scheme://(tld,domain,:port@userinfo)/path?query#fragment

转换后的格式就称为SURT格式。例如,http://www.baidu.com的SURT格式是http://(com,baidu,www,)

这里()中的内容就是转换的内容。

同时,为了不引起URL的冲突,将"."改成了","。

这样做可以方便处理。

因为,原始的URL的host的层次与人们的常规思维相反。

例如,http://www.ccer.pku.edu.cn。"www","ccer","pku","edu","cn"的范围是从小到大的关系。

而变成SURT格式后是,http://(cn,edu,pku,ccer,www,),范围从大到小。

这样可以帮助我们对URL排序,将同一个范围内的URL聚集到一起(通常只需要对SURT格式的字符串进行比较就可以了)。

最后一个注意点,由于URL的大小写影响不大,所以SURT默认将 所有字母全部转换成小写。

SurtPrefixedDecideRule就是用来判断一个URL的SURT格式是否以某个前缀开头(这些前缀一般是由种子产生的,也可以自己指定前缀的文件)。

SurtPrefixedDecideRule首先根据来源生成一个保存SURT的Set。

然后对每个爬取的URL,先转换成SURT格式,判断是否以Set中的某个SURT开头,根据结果做出accept,pass或reject。

感兴趣的可以自己看看源代码。

(为什么不能发图??)

这里有几个设置属性,默认情况下是从seed直接生成用来判断前缀的Set。

decision: accept或reject,如果不明白的话得了解一下DecideRule的机制。

surts-source-file: 可以指定生成surt Set的URL来源。

seeds-as-surt-prefixes: 是否把种子中的URL作为surt的Set。

surts-dump-file:将用来比较的SURT dump到文件中,主要是调试的时候看一下是否有错误。

also-check-via:是否检查URL的来源。默认为false。

例如。http://blog.csdn.net/是从http://www.csdn.net/上面链接过来的,

就说http://www.csdn.net/是http://blog.csdn.net/的via,就是这里提到的“来源”的意思。

即,如果为true,那么在检查http://blog.csdn.net/的时候,还要检查从http://www.csdn.net/。

rebuild-on-reconfig:在重新配置的时候是否重新生成set。

举几个例子:

假设我们的decision是accept。

1.如果只指定了http://www.foo.org/,那么将会accept所有http://www.foo.org/的URL。但是对于http://foo.org/的页面将会pass。

2.如果指定了http://www.foo.org/和http://foo.org/,那么将会accept所有http://www.foo.org/和http://foo.org/的URL。

3.如果指定了http://foo.org(注意这里没有斜杠,有什么区别大家仔细想一下),那么将会accept所有http://foo.org/和foo.org下的子域名的URL(如,http://www.foo.org/和http://ex.foo.org/)。
分享到:
评论

相关推荐

    heritrix问题锦集[收集].pdf

    在Heritrix中,SURT(Sort-friendly URI Reordering Transform)和SurtPrefixedDecideRule是两个关键概念,它们对于高效和准确地抓取目标站点的内容至关重要。 SURT是一种URL规范化和排序的格式,它将URL转换成一种...

    heritrix 中文API (自己整理) 网络爬虫

    Heritrix的这些链结构使得开发者可以根据需要定制复杂的爬虫策略,通过调整和扩展各个链中的处理器,实现对网络内容的精确抓取和处理。无论是处理DNS解析、HTTP请求,还是从各种格式的文档中提取链接,Heritrix的...

    开发自己的搜索引擎 lucene + heritrix

    在这个过程中,Lucene 和 Heritrix 是两个非常关键的工具,它们分别在搜索引擎的构建中扮演着不同的角色。 首先,Lucene 是一个基于 Java 的开源信息检索库,它为开发者提供了一系列用于构建搜索引擎的工具和接口。...

    heritrix抓取的操作和扩展

    Heritrix是一个强大的开源网络爬虫工具,专为互联网网页存档设计,由Java编写,由互联网档案馆和北欧国家图书馆共同开发。Heritrix的工作模型基于一个循环过程,包括选择URI、下载内容、分析归档、选择新URI并添加到...

    网络爬虫Heritrix1.14.4可直接用

    Heritrix是一款强大的开源网络爬虫工具,由互联网档案馆(Internet Archive)开发,主要用于抓取和保存网页内容。Heritrix 1.14.4是该软件的一个较早版本,但依然具有广泛的适用性,尤其对于学习和研究网络爬虫技术...

    在heritrix中使用pagerank算法

    在Heritrix网络爬虫中使用PageRank算法是提高网页抓取质量和效率的重要手段。PageRank是Google创始人 Larry Page提出的一种衡量网页重要性的算法,它通过分析网页之间的链接关系来评估网页的重要性。Heritrix是一个...

    Heritrix3手册翻译

    在Heritrix 3.0和3.1版本中,引入了一个基于Spring-container的配置系统,这使得设置管理更加灵活。此外,3.X版本的另一个显著改变是采用了一种新的模型,允许在同一个作业目录下重启作业,而无需每次都创建新的作业...

    heritrix1.14.0jar包

    在IT行业中,爬虫是获取大量网络数据的重要手段,Heritrix因其灵活性、可扩展性和定制性而备受青睐。标题中的"heritrix1.14.0jar包"指的是Heritrix的1.14.0版本的Java档案文件(JAR),这是运行或构建Heritrix爬虫...

    Heritrix在Eclipse中的源文件

    在Eclipse这样的集成开发环境中配置Heritrix源文件,可以方便开发者进行定制化开发、调试和理解Heritrix的工作原理。下面将详细介绍如何在Eclipse中设置Heritrix项目,并解释相关知识点。 首先,确保你已经安装了...

    heritrix-1.14.4.zip 和 heritrix-1.14.4-src.zip

    在Eclipse中,用户可以利用Java的强类型系统和丰富的库来增强Heritrix的功能,或者根据项目需求调整其核心算法。 Heritrix的设计基于模块化和可扩展性,它的主要组件包括爬取管道(Crawler Pipelines)、策略...

    Heritrix-1.4.4.src.zip +Heritrix-1.4.4.zip

    "Myeclipse下安装说明及常见问题.txt" 文件提供了在MyEclipse集成开发环境中安装和运行Heritrix的步骤和可能遇到的问题的解决方案。MyEclipse是一种强大的Java EE集成开发环境,对Java项目的支持非常全面,因此它是...

    Heritrix搭建好的工程

    在Eclipse中运行Heritrix工程,首先需要确保你已经安装了Java Development Kit (JDK) 和Eclipse IDE。Eclipse是Java应用程序,用于开发Java项目,包括像Heritrix这样的Web应用程序。将Heritrix工程导入到Eclipse中,...

    heritrix爬虫安装部署

    Heritrix的设计初衷是为了满足大规模网页归档的需求,但因其灵活的架构和丰富的API,也被广泛应用于数据挖掘、搜索引擎优化等领域。 #### 二、Heritrix下载、安装与配置 ##### 2.1 下载 - **下载地址**: 通常可以从...

    heritrix-1.14.2.zip

    Heritrix 1.14.2 是一个开源的网络爬虫工具,它主要用于抓取互联网上的网页和其他在线资源。这个版本的Heritrix在2007年左右发布,虽然较旧,但它仍然是理解网络爬虫技术的一个重要参考。 Heritrix是一个由Internet...

    Heritrix(windows版)

    - **日志和报告**:Heritrix记录详细的日志,用于监控和分析爬行过程,同时提供状态报告,帮助用户了解进度和效果。 总的来说,Heritrix是一个强大的工具,它提供了丰富的配置选项和扩展能力,能满足各种复杂的网页...

    很好的heritrix学习资料

    总的来说,这些资料提供了全面的Heritrix学习路径,从基础知识到实战经验,再到在Eclipse中的开发配置,对于想要深入理解和使用Heritrix的读者来说,是一套非常有价值的学习资源。通过深入研读并实践这些内容,读者...

    Heritrix的安装与配置

    在本文中,我们将深入探讨如何安装和配置Heritrix 1.14.4版本,这是一个基于Java的爬虫工具。 首先,我们需要从SourceForge网站下载Heritrix的源代码版本,文件名为`heritrix-1.14.4-src.zip`。选择源代码版本的...

Global site tag (gtag.js) - Google Analytics