Java Heritrix单点报废,包括所需的场外资产

Java Heritrix单点报废,包括所需的场外资产,java,web-crawler,heritrix,Java,Web Crawler,Heritrix,我相信我需要帮助编译Heritrix Decise规则,尽管我对Heritrix的其他建议持开放态度: 我需要刮取网站的整个副本(在crawler-beans.cxml种子列表中),但不刮取任何外部(非现场)页面。应下载呈现当前网站所需的任何外部资源,但不要跟随指向非网站页面的任何链接-仅下载当前页面/域的资产 例如,呈现页面所需的CDN内容可能托管在外部域(可能是AWS或Cloudflare)上,因此我需要下载该内容,以及以下所有域内链接,但不遵循指向当前域范围之外页面的任何链接。您可以使用3

我相信我需要帮助编译Heritrix Decise规则,尽管我对Heritrix的其他建议持开放态度:

我需要刮取网站的整个副本(在crawler-beans.cxml种子列表中),但不刮取任何外部(非现场)页面。应下载呈现当前网站所需的任何外部资源,但不要跟随指向非网站页面的任何链接-仅下载当前页面/域的资产


例如,呈现页面所需的CDN内容可能托管在外部域(可能是AWS或Cloudflare)上,因此我需要下载该内容,以及以下所有域内链接,但不遵循指向当前域范围之外页面的任何链接。

您可以使用3个规则:

  • 第一个接受所有非html页面,使用
    ContentTypeNotMatchesRegexDecideRule
  • 第二个接受当前域中的所有URL
  • 第三个拒绝域之外的所有页面,也不直接拒绝 从域到达(alsoCheckVia选项)
比如说:

<bean id="scope" 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.ContentTypeNotMatchesRegexDecideRule">
    <property name="decision" value="ACCEPT"/>
    <property name="regex" value="(?i)html|wml"/>
   </bean>
   <bean class="org.archive.modules.deciderules.surt.SurtPrefixedDecideRule">
    <property name="decision" value="ACCEPT"/>
    <property name="surtsSource">
     <bean class="org.archive.spring.ConfigString">
      <property name="value">
       <value>
        http://(org,yoursite,
       </value>
      </property> 
     </bean>
    </property>
   </bean>
   <bean class="org.archive.modules.deciderules.surt.NotSurtPrefixedDecideRule">
    <property name="decision" value="REJECT"/>
    <property name="alsoCheckVia" value="true"/>
    <property name="surtsSource">
     <bean class="org.archive.spring.ConfigString">
      <property name="value">
       <value>
        http://(org,yoursite,
       </value>
      </property> 
     </bean>
    </property>
   </bean>
  </list>
 </property>
</bean>

http://(org,yoursite,
http://(org,yoursite,