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)