Question

: Heritrix il y a Les cas d'utilisation d'un cas d'utilisation pour " ne conserver que les pages HTML réussie "

Mon problème: je ne sais pas comment le mettre en œuvre dans mon dossier cXML. Surtout: Ajout du ContentTypeRegExpFilter au ARCWriterProcessor => définir son paramètre regexp text / html. *. ... Il n'y a pas ContentTypeRegExpFilter dans l'échantillon cXML fichiers.

Était-ce utile?

La solution

Les cas d'utilisation que vous citez sont un peu hors de date et se référer à 1.x Heritrix (filtres ont été remplacés par des règles de décider, cadre de configuration très différente). Pourtant le concept de base est le même.

Le fichier cXML est essentiellement un fichier de configuration Spring. Vous devez configurer le shouldProcessRule de propriété sur le haricot ARCWriter être le ContentTypeMatchesRegexDecideRule

Une configuration possible de 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>

Cela entraînera le processeur à traiter uniquement les éléments qui correspondent au DecideRule, qui à son tour ne laisse passer que ceux dont le type de contenu (type MIME) correspond à l'expression régulière fourni.

Attention à la mise en « décision ». Est-ce que vous les choses dans notre excluez sur? (Règles Mon exemple choses, tout ce qui ne correspondant est exclu).

shouldProcessRule est hérité du processeur, ce qui peut être appliquée à tout processeur.

Plus d'informations sur la configuration Heritrix 3 se trouve sur le Heritrix 3 Wiki (le mode d'emploi sur crawler.archive.org est d'environ Heritrix 1)

Autres conseils

La réponse de Kris est seulement la moitié de la vérité (au moins avec Heritrix 3.1.x que j'utilise). Un retour de DecideRule ACCEPTER, REJETER ou NONE. Si une règle retourne NONE, cela signifie que cette règle n'a « aucune opinion » à ce sujet (comme ACCESS_ABSTAIN dans Spring Security). Maintenant, ContentTypeMatchesRegexDecideRule ( comme tous les autres MatchesRegexDecideRule ) peut être configuré pour renvoyer une décision si un (regex matchs configurés par les deux propriétés « décision » et « regex »). Les moyens de réglage que cette règle renvoie une décision ACCEPT si les matchs regex, mais retourne NONE si elle ne pas Match. Et comme nous l'avons vu -. NONE est pas une opinion afin que shouldProcessRule évaluera ACCEPT car aucune décision n'a été prise

Donc, pour que les réponses d'archives avec text / html * Content-Type, configurez un DecideRuleSequence où tout est Rejeté par défaut, et seules les entrées sélectionnées seront acceptées.

Cela ressemble à ceci:

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

Pour éviter que les images, les films etc. sont téléchargés tout, configurer le « champ » haricot avec un MatchesListRegexDecideRule qui Rejette urls avec des extensions de fichiers bien connus comme:

<!-- ...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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top