Scrapy reptil plantilla --XMLFeedSpider

XMLFeedSpider RSS se utiliza principalmente para el rastreo. RSS es una tecnología de la información y la oficina basado en XML. Por último, mirada en el resumen de este artículo voy a utilizar un ejemplo para rastreo Observador Económico en línea RSS para explicar su uso específico. Ahora nos fijamos en el común de los atributos XMLFeedSpider.

Cero, atributos comunes

  1. iterador: iterador, se utiliza principalmente para analizar un feed RSS, iterador disponible en tres formas:
  • iternode: alto rendimiento expresión regular iterador, éste por defecto
  • html: cargar todos los análisis de la estructura DOM, pero si la enorme cantidad de datos tendrá problemas de rendimiento. La única ventaja es razonable para hacer frente a la etiqueta sería útil
  • xml: html iteradores y similares.
  1. itertag: nodo iteración Especifica
  2. espacios de nombres: las definiciones de espacio de nombres cuando los documentos de procesamiento requerido para ser utilizado.

Un método comúnmente utilizado

  1. adapt_response (respuesta): En la Respuesta análisis pre-tratamiento desencadenadas utiliza principalmente para modificar el contenido de la respuesta, el tipo de retorno es la respuesta.
  2. parse_node (respuesta, selectot): Este método se activa cuando el tratamiento de datos miedo canales de nodo partido. Este método debe ser implementado en el código del proyecto, o un reptil no funciona, y debe volver el artículo, solicitud o contener tanto iteradores.
  3. process_result (respuesta, resultado): La disparada al volver arrastrándose, arrastrándose por el resultado de venir a tratar con el marco básico para hacer cambios de última hora.

caso

Veamos cómo XMLFeedSpider utilizado en combate arrastrándose Observador Económico de RSS. En primer lugar nos fijamos en la estructura de RSS Observador Económico en línea:
Aquí Insertar imagen Descripción

Como puede verse a partir de la información de la carta son útiles para nosotros en el tema de la etiqueta entre, entonces el contenido entre las etiquetas es que necesitamos para tomar algo, esta etiqueta se llama un nodo.

# -*- coding: utf-8 -*-
from scrapy.spiders import XMLFeedSpider
from ..items import RsshubItrem


class RsshubSpider(XMLFeedSpider):
    name = 'rsshub'
    allowed_domains = ['rsshub.app']
    start_urls = ['https://rsshub.app/eeo/01']
    iterator = 'iternodes'
    itertag = 'item'

    def parse_node(self, response, selector):
        item = RsshubItrem()
        item['title'] = selector.css("title::text").extract_first()
        item['public_date'] = selector.css("publicDate::text").extract_first()
        item['link'] = selector.css("link::text").extract_first()
        return item

        import scrapy


class RsshubItrem(scrapy.Item):
    title = scrapy.Field()
    public_date = scrapy.Field()
    link = scrapy.Field()

Publicados 204 artículos originales · ganado elogios 101 · Vistas de 350.000 +

Supongo que te gusta

Origin blog.csdn.net/gangzhucoll/article/details/103797247
Recomendado
Clasificación