Ответ Криса — только половина правды (по крайней мере, с Heritrix 3.1.x, которую я использую). DecideRule возвращает ACCEPT, REJECT или NONE. Если правило возвращает NONE, это означает, что у этого правила «нет мнения» об этом (например, ACCESS_ABSTAIN в Spring Security). Теперь ContentTypeMatchesRegexDecideRule ( как и все остальные MatchesRegexDecideRule) можно настроить для возврата решения, если регулярное выражение соответствует (настраивается двумя свойствами «решение» и «регулярное выражение»). Параметр означает, что это правило возвращает решение ПРИНЯТЬ, если регулярное выражение совпадает, и возвращает НЕТ, если оно не совпадает. И, как мы видели, NONE не является мнением, так что shouldProcessRule оценивается как ACCEPT, потому что никаких решений не было принято.
Таким образом, чтобы архивировать только ответы с text/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>
Чтобы избежать загрузки изображений, фильмов и т. д., настройте bean-компонент «scope» с помощью MatchesListRegexDecideRule, который ОТКЛОНЯЕТ 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>
person
James
schedule
02.10.2013