在: Heritrix用途 有一个用于“仅存储成功HTML页面”的用例

我的问题:我不知道如何在CXML文件中实现它。特别是:将ContentTypereGexpFilter添加到ArcWriterProcessor =>将其REGEXP设置设置为文本/HTML。*。 ...示例CXML文件中没有ContentTypereGexpFilter。

有帮助吗?

解决方案

您引用的用例有些过时,并参考Heritrix 1.x(已替换为决定规则,配置框架非常不同)。基本概念仍然相同。

CXML文件基本上是一个弹簧配置文件。您需要配置属性 shouldProcessRule 在arcwriter bean上 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>

这将导致处理器仅处理匹配决定材料的项目,而该项目又只通过那些内容类型(MIME类型)与提供的正则表达式相匹配的项目。

请注意“决策”设置。您是否在我们的外面统治事情? (我的示例规定了任何不匹配的事情,排除在外)。

作为 shouldProcessRule 是从处理器继承的,可以应用于任何处理器。

有关配置Heritrix 3的更多信息,请参见 Heritrix 3 Wiki (crawler.archive.org上的用户指南有关Heritrix 1)

其他提示

克里斯的回答只是真相的一半(至少与我正在使用的Heritrix 3.1.x在一起)。决定返回,接受,拒绝或无。如果规则不返回,则意味着该规则对此没有“意见”(例如春季安全性中的Access_Abstain)。现在 contentTypematchesregexdeciderule (与其他所有 matchesregexdeciderule)可以配置为如果正则匹配(由两个属性“决策”和“ Regex”配置),则可以返回决策。设置意味着该规则如果正则匹配等级,则返回接受决策,但如果它确实返回 不是 匹配。正如我们所看到的 - 没有一个意见,因此应该评估应该评估要接受的意见,因为没有做出决定。

因此,要仅使用文本/html* content-type进行归档响应,请配置deciderulesequence,默认情况下所有内容都被拒绝,并且仅接受选定的条目。

看起来像这样:

 <bean id="warcWriter" class="org.archive.modules.writer.WARCWriterProcessor">
   <property name="shouldProcessRule">
     <bean class="org.archive.modules.deciderules.DecideRuleSequence">
       <property name="rules">
         <list>
           <!-- Begin by REJECTing all... -->
           <bean class="org.archive.modules.deciderules.RejectDecideRule" />
           <bean class="org.archive.modules.deciderules.ContentTypeMatchesRegexDecideRule">
             <property name="decision" value="ACCEPT" />
             <property name="regex" value="^text/html.*" />
           </bean>
         </list>
       </property>
     </bean>
   </property>
   <!-- other properties... -->
 </bean>

为避免图像,电影等完全下载,请使用MatchesListregexDeciderule配置“范围” bean,该bean拒绝使用众所周知的文件扩展名的URL,例如:

<!-- ...and REJECT those from a configurable (initially empty) set of URI regexes... -->
<bean class="org.archive.modules.deciderules.MatchesListRegexDecideRule">
      <property name="decision" value="REJECT"/>
      <property name="listLogicalOr" value="true" />
      <property name="regexList">
       <list>
         <value>.*(?i)(\.(avi|wmv|mpe?g|mp3))$</value>
         <value>.*(?i)(\.(rar|zip|tar|gz))$</value>
         <value>.*(?i)(\.(pdf|doc|xls|odt))$</value>
         <value>.*(?i)(\.(xml))$</value>
         <value>.*(?i)(\.(txt|conf|pdf))$</value>
         <value>.*(?i)(\.(swf))$</value>
         <value>.*(?i)(\.(js|css))$</value>
         <value>.*(?i)(\.(bmp|gif|jpe?g|png|svg|tiff?))$</value>
       </list>
      </property>
</bean>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top