Frage

Heritrix Usecases gibt es einen Use Case für " nur speichern Erfolgreiche HTML-Seiten "

Mein Problem: Ich weiß nicht, wie es Datei in meinem cxml zu implementieren. Insbesondere: Das Hinzufügen der ContentTypeRegExpFilter zum ARCWriterProcessor => gesetzt seine regexp Einstellung text / html. *. ... Es gibt keinen ContentTypeRegExpFilter in der Probe cxml Dateien.

War es hilfreich?

Lösung

Die Anwendungsfälle Sie zitieren etwas veraltet sind und beziehen sich auf Heritrix 1.x (Filter ersetzt wurden mit Regeln entscheiden, sehr unterschiedliche Konfigurations-Framework). Immer noch das Grundkonzept ist das gleiche.

Die cxml Datei ist im Grunde eine Spring-Konfigurationsdatei. Sie müssen die Eigenschaft shouldProcessRule auf dem ArcWriter Bean konfigurieren die ContentTypeMatchesRegexDecideRule sein

Eine mögliche ArcWriter Konfiguration:

  <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>

Dies wird den Prozessor veranlassen, nur die Elemente zu verarbeiten, die die DecideRule entsprechen, die wiederum nur diejenigen, Inhaltstyp, das gibt (MIME-Typ) mit dem vorgesehenen regulären Ausdruck.

Seien Sie vorsichtig über die ‚Entscheidung‘ Einstellung. Regieren Sie die Dinge in unserem heraus? (Mein Beispiel Regeln Dinge in, nichts Anpassung wird ausgeschlossen).

Wie shouldProcessRule von Prozessor vererbt wird, kann dies zu jedem Prozessor angewandt werden.

Weitere Informationen über Heritrix Konfiguration 3 auf dem finden Heritrix 3 Wiki (in der Bedienungsanleitung auf crawler.archive.org ca. Heritrix 1)

Andere Tipps

Kris Antwort ist nur die halbe Wahrheit (zumindest mit Heritrix 3.1.x, dass ich verwende). Eine DecideRule Rückkehr akzeptieren, ablehnen oder NONE. Wenn eine Regel NONE zurückgibt, bedeutet dies, dass diese Regel zu, dass „keine Meinung“ hat (wie ACCESS_ABSTAIN in Spring Security). Jetzt ContentTypeMatchesRegexDecideRule ( wie alle anderen MatchesRegexDecideRule ) kann eine Entscheidung zurück, wenn ein regulärer Ausdruck matches (konfiguriert durch die beiden Eigenschaften „Entscheidung“ und „regex“) konfiguriert werden. Die Einstellung bedeutet, dass diese Regel zurück, wenn die Regex-Übereinstimmungen eine ACCEPT Entscheidung, kehrt aber NONE wenn es funktioniert nicht Spiel. Und wie wir gesehen haben -. NONE ist keine Meinung, so dass shouldProcessRule zu akzeptieren bewerten, da keine Entscheidungen getroffen wurden

So um nur die Antworten mit text / html * Content-Type, configure ein DecideRuleSequence wo alles standardmäßig abgelehnt und nur ausgewählte Einträge werden nicht akzeptiert.

Das sieht wie folgt aus:

 <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>

, die Bilder zu vermeiden, usw. Filme überhaupt heruntergeladen werden, konfigurieren Sie die „Umfang“ Bohne mit einem MatchesListRegexDecideRule dass verwirft Urls mit bekannten Dateierweiterungen wie:

<!-- ...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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top