Domanda

On: Heritrix casi d'uso c'è un caso d'uso per " solo negozio di successo di pagine HTML "

Il mio problema: io non so come implementarlo nel mio file cXML. Particolarmente: Aggiunta del ContentTypeRegExpFilter al ARCWriterProcessor => impostare la sua impostazione regexp a text / html. *. ... Non v'è alcun ContentTypeRegExpFilter nel campione cXML file.

È stato utile?

Soluzione

I casi d'uso che citi sono un po 'fuori moda e si riferiscono a Heritrix 1.x (i filtri sono stati sostituiti con decidere regole, quadro configurazione molto diversa). Ancora il concetto di base è lo stesso.

Il file cXML è fondamentalmente un file di configurazione di primavera. È necessario configurare il shouldProcessRule proprietà sul fagiolo ARCWriter di essere il ContentTypeMatchesRegexDecideRule

Una possibile configurazione 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>

In questo modo il processore per elaborare solo quegli elementi che corrispondono al DecideRule, che a sua volta passa solo quelli il cui contenuto tipo (tipo MIME) corrisponde all'espressione regolare disponibile.

Fare attenzione circa l'impostazione 'decisione'. Stai sentenza cose nel nostro fuori? (Il mio esempio regole cose, tutto ciò che non corrispondenza è escluso).

Come shouldProcessRule viene ereditato dal processore, questo può essere applicato a qualsiasi elaboratore.

Maggiori informazioni sulla configurazione Heritrix 3 può essere trovato sulla Heritrix 3 Wiki (manuale utente sul crawler.archive.org è circa Heritrix 1)

Altri suggerimenti

La risposta di Kris è solo metà della verità (almeno con Heritrix 3.1.x che sto usando). Un ritorno DecideRule accettare, rifiutare o NONE. Se una regola restituisce None, significa che questa regola non ha "alcuna opinione" su che (come ACCESS_ABSTAIN nella Primavera di sicurezza). Ora ContentTypeMatchesRegexDecideRule ( come tutti gli altri MatchesRegexDecideRule ) può essere configurato per restituire una decisione se un regex partite (configurate dal due proprietà "decisione" e "regex"). I mezzi di regolazione che questa regola restituisce un accettare la decisione se le partite regex, ma restituisce None se lo fa non partita. E come abbiamo visto -. NONE non è un'opinione in modo che shouldProcessRule valuterà da accettare perché non sono state prese decisioni

Quindi, per solo risposte archivio con text / html * Content-Type, configurare un DecideRuleSequence dove tutto è respinto per impostazione predefinita e solo le voci selezionate saranno accettate.

appare simile a questo:

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

Per evitare che le immagini, filmati, ecc vengono scaricati a tutti, configurare il fagiolo "portata" con un MatchesListRegexDecideRule che rifiuta gli URL con estensioni di file ben noti come:

<!-- ...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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top