Pregunta

En: Heritrix casos de uso hay un caso de uso para " Sólo tienda de éxito páginas HTML "

Mi Problema: No sé cómo ponerlo en práctica en mi cxml Archivo. Especialmente: La adición de la ContentTypeRegExpFilter a la ARCWriterProcessor => establece el ajuste de expresiones regulares en text / html. *. ... No hay ninguna ContentTypeRegExpFilter en la muestra cxml archivos.

¿Fue útil?

Solución

Los casos de uso que usted cita son un poco fuera de fecha y se refieren a Heritrix 1.x (filtros han sido reemplazados por decidir reglas, muy diferente marco de configuración). Aún así, el concepto básico es el mismo.

El archivo cxml es básicamente un archivo de configuración de primavera. Es necesario configurar el shouldProcessRule propiedad en el frijol ARCWriter ser el ContentTypeMatchesRegexDecideRule

Una posible configuración 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>

Esto hará que el procesador para procesar solamente aquellos elementos que coinciden con el DecideRule, que a su vez sólo deja pasar aquellos cuyo contenido tipo (tipo MIME) coincide con la expresión regular proporcionada.

Tenga cuidado con el ajuste de 'decisión'. ¿Está gobernando cosas en nuestro fuera? (Mi ejemplo reglas cosas en, cualquier cosa que no coincidente se descarta).

Como shouldProcessRule se hereda de procesador, esto se puede aplicar a cualquier procesador.

Más información sobre la configuración Heritrix 3 se puede encontrar en la Heritrix 3 Wiki (la guía del usuario en crawler.archive.org es de aproximadamente Heritrix 1)

Otros consejos

La respuesta de Kris es sólo la mitad de la verdad (al menos con 3.1.x Heritrix que estoy usando). Un retorno DecideRule aceptar, rechazar o ninguno. Si una regla devuelve NINGUNO, significa que esta regla no tiene "ninguna opinión" acerca de que (como ACCESS_ABSTAIN en la primavera de Seguridad). Ahora ContentTypeMatchesRegexDecideRule ( como todos los demás MatchesRegexDecideRule ) puede ser configurado para devolver una decisión de si un partidos de expresiones regulares (configurado por las dos propiedades "decisión" y "expresiones regulares"). Los medios de ajuste que esta regla se vuelve una decisión si las coincidencias de expresiones regulares aceptar, pero devuelve None si lo hace no partido. Y como hemos visto -. NINGUNO no es una opinión de manera que shouldProcessRule evaluará de aceptar porque no se han tomado decisiones

Así que sólo las respuestas de archivo con text / html * Content-Type, configure un DecideRuleSequence donde todo es rechazado por defecto y sólo las entradas seleccionadas serán aceptadas.

Este es similar al siguiente:

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

Para evitar que las imágenes, películas, etc. se descargan en absoluto, configurar el frijol "alcance" con un MatchesListRegexDecideRule que rechaza las direcciones URL con extensiones de archivo conocidos como:

<!-- ...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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top