Indexing 如何从heritrix爬网中排除除文本/html以外的所有内容?
On:有一个“仅存储成功的HTML页面”的用例 我的问题是:我不知道如何在我的cxml文件中实现它。特别是: 将ContentTypeRegExpFilter添加到ARCWriterProcessor=>将其regexp设置设置为text/html.*。。。Indexing 如何从heritrix爬网中排除除文本/html以外的所有内容?,indexing,search-engine,web-crawler,cxml,heritrix,Indexing,Search Engine,Web Crawler,Cxml,Heritrix,On:有一个“仅存储成功的HTML页面”的用例 我的问题是:我不知道如何在我的cxml文件中实现它。特别是: 将ContentTypeRegExpFilter添加到ARCWriterProcessor=>将其regexp设置设置为text/html.*。。。 示例cxml文件中没有ContentTypeRegExpFilter。您引用的用例有些过时,请参考Heritrix 1.x(过滤器已替换为Decise规则,非常不同的配置框架)。但基本概念是一样的 cxml文件基本上是一个Spring配置文
示例cxml文件中没有ContentTypeRegExpFilter。您引用的用例有些过时,请参考Heritrix 1.x(过滤器已替换为Decise规则,非常不同的配置框架)。但基本概念是一样的 cxml文件基本上是一个Spring配置文件。您需要将ARCWriter bean上的属性
shouldProcessRule
配置为ContentTypeMatchesRegexDecideRule
可能的ARCWriter配置:
<bean id="warcWriter" class="org.archive.modules.writer.ARCWriterProcessor">
<property name="shouldProcessRule">
<bean class="org.archive.modules.deciderules.ContentTypeMatchesRegexDecideRule">
<property name="decision" value="ACCEPT" />
<property name="regex" value="^text/html.*">
</bean>
</property>
<!-- Other properties that need to be set ... -->
</bean>
这将导致处理器只处理与DecideRule匹配的项,而DecideRule又只传递内容类型(mime类型)与提供的正则表达式匹配的项
小心“决策”设置。你是在排除我们公司的事情吗?(我的示例将事情规则化,排除任何不匹配的事情)
由于shouldProcessRule
是从处理器继承的,因此这可以应用于任何处理器
有关配置Heritrix 3的更多信息,请访问(crawler.archive.org上的用户指南是关于Heritrix 1的)Kris的答案只有一半(至少对于我正在使用的Heritrix 3.1.x而言)。决定返回接受、拒绝或无。如果一个规则返回NONE,这意味着该规则对此“没有意见”(就像SpringSecurity中的ACCESS\u弃权)。现在(和所有其他方法一样)可以配置为在正则表达式匹配时返回决策(由两个属性“decision”和“regex”配置)。该设置意味着,如果正则表达式匹配,则该规则返回接受决策,如果不匹配,则返回NONE。正如我们所看到的,没有人不是一个意见,所以我们的规则将评估接受,因为没有作出决定 因此,要仅归档text/html*内容类型的响应,请配置DecideRuleSequence,默认情况下拒绝所有内容,并且只接受选定的条目 这看起来像这样:
为了避免下载图像、电影等,请使用MatchesListRegexDecideRule配置“scope”bean,该bean拒绝具有众所周知的文件扩展名的URL,如:
*(\(avi | wmv | mpe | g | mp3))$
.*i(\(rar|zip|tar|gz))$
*(\(pdf文档xls odt))$
.*i)(\(xml))$
.*i(\.(txt|conf|pdf))$
.*i)(\(swf))$
.*i(\.(js|css))$
.*i)(\(bmp | gif | jpe | g | png | svg | tiff?)$
有一点输入错误。regex属性缺少斜杠