marco Scrapy - rastreo de datos de paginación por enlace CrawlSpider extractor

Los datos de la estación que se arrastran

La mayoría de los sitios muestran datos operaciones de paginación se llevan a cabo, entonces todos los números de página de datos de página correspondiente se está arrastrando todos los datos de la estación en el rastreo reptil. Scrapy rastreo basado en la forma completa de la estación de datos que?

Cada uno de los correspondientes números de página se almacena en la lista de URL url de partida (start_urls) en el archivo de orugas. (No se recomienda)

Solicitud solicitud de inicio utilizando el método manual. (Mala gana)

Uso crawlSpider enlace extractor (recomendado)

Requisitos: La Enciclopedia de vergüenzas todas las páginas del autor y la pieza de datos de contenido que se arrastra corte almacenamiento persistente

# - * - coding:. UTF-8 - * - 
Importación Scrapy
 de scrapy.linkextractors importación LinkExtractor
 de scrapy.spiders importación CrawlSpider, la regla de 


clase QiubaiSpider (CrawlSpider): 
    nombre = ' Qiubai ' 
    # allowed_domains = [ 'www.qiubai.cn' ] 
    start_urls = [ ' https://www.qiushibaike.com/8hr/page/1/ ' ]
     # definen reglas para cada página, para la extracción de enlaces 
    conectan = LinkExtractor (R ^ al permitir = ' / 8 h / página / \ + D / ' ) 
    las reglas =  (
        la Regla (Enlace, la devolución de llamada= ' Parse_item ' , Seguir = True), # barbecho extraer todos p = True 
    ) 

    DEF parse_item (Ser, Respuesta): 
    # comienza el análisis de los datos necesarios
de impresión (Respuesta)

 2. Otras medidas (formato propio de la construcción URL de cada página)

# - * - coding:. UTF-8 - * - 
Importación Scrapy
 de qiushibaike.items importación QiushibaikeItem
 # scrapy.http Importe la Solicitud 
de clase QiushiSpider (scrapy.Spider): 
  Nombre = ' Qiushi ' 
  allowed_domains = [ ' www.qiushibaike.com ' ] 
  start_urls = [ ' https://www.qiushibaike.com/text/ ' ]
  # arrastrándose varias páginas 
  pagenum. 1 = # de comenzar la página 
  URL = ' https://www.qiushibaike.com/text/page/%s/ '  #每页的url 
def análisis sintáctico (sí, la respuesta): 
  div_list = response.xpath ( ' // * [@ id = "Content-izquierda"] / div ' )
  para el div en div_list:
    # // * [@ id =" qiushi_tag_120996995" ] / div [1] / a [2] / h2 
    autor = div.xpath ( ' .//div[@class="author clearfix "] // h2 / texto () ' ) .extract_first () 
    autor = author.strip ( ' \ n ' ) 
    contenido = div.xpath ( ' .// div [@ class = "contenido"] / span / texto () ' ) .extract_first () 
    contenidos = contenido.tira ( ' \ n' ) 
    Elemento = QiushibaikeItem () 
    elemento [ ' autor ' ] = autor 
    elemento [ ' contenido ' ] = contenido
    el rendimiento elemento # presentado a la tubería para el artículo persistencia 
    # arrastrándose todos los datos de la página 
    SI self.pageNum <= 13 es: # subida total de tomar 13 (de 13) 
      self.pageNum 1 + =. 
      url = el formato (self.url% self.pageNum)
      # de datos que se arrastran recursivas: parámetro de devolución de llamada es la función de devolución de llamada (url la solicitud, los datos correspondientes obtenidos siguen análisis sintáctico de análisis sintáctico a cabo), la llamada función recursiva de análisis sintáctico 
      el rendimiento scrapy.Request (URL = URL, la devolución de llamada = self.parse)

 

 

Supongo que te gusta

Origin www.cnblogs.com/cou1d/p/12643155.html
Recomendado
Clasificación