Scrapy desde la entrada hasta el abandono del proceso de desarrollo 1

El método de entrada para usar el marco scrapy es el registro del autor al aprender Dark Horse Python

Inserte la descripción de la imagen aquí

1 Instalar scrapy

Comando de Linux:

sudo apt-get install scrapy

Windows:

pip install scrapy

Resuelva el problema de la referencia de descarga lenta:
velocidad de instalación de la biblioteca de terceros de Python

2 proceso de desarrollo de proyectos scrapy

  1. Crear proyecto:
   scrapy startproject mySpider
  1. Genere un rastreador:
scrapy genspider itcast itcast.cn
  1. Extraer datos:

    realizar contenido relacionado con la recopilación de datos en spider de acuerdo con la estructura del sitio web
  2. Guardar datos:

    utilice la canalización para el procesamiento y almacenamiento de datos posteriores

3. Crear proyecto

Los archivos del proyecto scrapy se generan mediante comandos, y los pasos siguientes son operaciones relacionadas en los archivos del proyecto. Lo siguiente es tomar la biblioteca de profesores de Chuanzhi para aprender a usar scrapy: http://www.itcast.cn/channel/ teacher.shtml

El comando para crear un proyecto scrapy:

scrapy startproject <项目名字>

Ejemplo:

scrapy startproject myspider

4. Cree un rastreador

El archivo rastreador se crea mediante comandos. El archivo rastreador es el archivo de trabajo de código principal. Por lo general, la acción de rastreo de un sitio web se escribirá en el archivo rastreador.

Comando:
ejecutar en la ruta del proyecto :

scrapy genspider <爬虫名字> <允许爬取的域名>

Nombre del rastreador : como parámetro cuando se está ejecutando el rastreador

Nombre de dominio permitido : es el rango de rastreo establecido para el rastreador. Después de la configuración, se usa para filtrar la URL que se rastreará. Si la URL rastreada no se comunica con el dominio permitido, se filtrará.

Ejemplo:

    cd myspider
    scrapy genspider itcast itcast.cn

5. Rastreador perfecto

Escriba la operación de recopilación de datos del sitio web designado en el archivo del rastreador generado en el paso anterior para realizar la extracción de datos

5.1 Modifique el contenido en /myspider/myspider/spiders/itcast.py de la siguiente manera:

import scrapy

class ItcastSpider(scrapy.Spider):  # 继承scrapy.spider
	# 爬虫名字 
    name = 'itcast' 
    # 允许爬取的范围
    allowed_domains = ['itcast.cn'] 
    # 开始爬取的url地址
    start_urls = ['http://www.itcast.cn/channel/teacher.shtml']
    
    # 数据提取的方法,接受下载中间件传过来的response
    def parse(self, response): 
    	# scrapy的response对象可以直接进行xpath
    	names = response.xpath('//div[@class="tea_con"]//li/div/h3/text()') 
    	print(names)

    	# 获取具体数据文本的方式如下
        # 分组
    	li_list = response.xpath('//div[@class="tea_con"]//li') 
        for li in li_list:
        	# 创建一个数据字典
            item = {
    
    }
            # 利用scrapy封装好的xpath选择器定位元素,并通过extract()或extract_first()来获取结果
            item['name'] = li.xpath('.//h3/text()').extract_first() # 老师的名字
            item['level'] = li.xpath('.//h4/text()').extract_first() # 老师的级别
            item['text'] = li.xpath('.//p/text()').extract_first() # 老师的介绍
            print(item)
Nota:
  • Debe haber un análisis con nombre parse en scrapy. Clase de rastreador araña
  • Si el nivel de estructura del sitio web es más complejo, también puede personalizar otras funciones analíticas
  • Si la dirección URL extraída en la función de análisis quiere enviar una solicitud, debe pertenecer al alcance de los dominios_permitidos, pero la dirección URL en start_urls no está sujeta a esta restricción. Aprenderemos cómo construir una solicitud de envío en la función de análisis en cursos posteriores.
  • Al iniciar el rastreador, preste atención a la posición de inicio, que se inicia en la ruta del proyecto
  • La función parse () usa yield para devolver datos. Nota: Los objetos que se pueden pasar por yield en la función parse solo pueden ser: BaseItem, Request, dict, None

5.2 Métodos para localizar elementos y extraer datos y valores de atributos

Analice y obtenga los datos en el rastreador scrapy: use la cadena de reglas xpath para ubicar y extraer

  1. El resultado de retorno del método response.xpath es un tipo similar a una lista, que contiene un objeto selector, la operación es la misma que la lista, pero hay algunos métodos adicionales
  2. Extracto de método adicional (): devuelve una lista que contiene cadenas
  3. Método extra extract_first (): devuelve la primera cadena de la lista, la lista está vacía y no devuelve None

5.3 Atributos comunes del objeto de respuesta

  • response.url: la dirección URL de la respuesta actual
  • response.request.url: la dirección URL de la solicitud correspondiente a la respuesta actual
  • response.headers: encabezado de respuesta
  • response.requests.headers: solicita encabezados de la respuesta actual
  • response.body: cuerpo de respuesta, que es código html, tipo de byte
  • response.status: código de estado de respuesta

6 Guardar datos

Utilice la canalización de la canalización para procesar (guardar) datos

6.1 Definir operaciones sobre datos en el archivo pipelines.py

  1. Definir una clase de canalización
  2. Anular el método process_item de la clase de canalización
  3. El método process_item debe regresar al motor después de procesar el artículo
import json

class ItcastPipeline():
    # 爬虫文件中提取数据的方法每yield一次item,就会运行一次
    # 该方法为固定名称函数
    def process_item(self, item, spider):
        print(item)
        return item

6.2 Configurar para habilitar la canalización en settings.py

ITEM_PIPELINES = {
    'myspider.pipelines.ItcastPipeline': 400
}

La clave en el elemento de configuración es la clase de canalización utilizada, y la clase de canalización se divide entre. El primero es el directorio del proyecto, el segundo es el archivo y el tercero es el canal definido.

El valor en el elemento de configuración es el orden en que se utiliza la canalización. Cuanto menor sea el valor, mejor será la ejecución. El valor generalmente se establece dentro de 1000.

7. Ejecuta scrapy

Comando: ejecutar scrapy crawl <nombre del rastreador> en el directorio del proyecto



El artículo es un registro del autor durante el aprendizaje de Dark Horse Python. Si hay algún error, infórmelo en el área de comentarios
**

Este es el final, si te ayuda, bienvenido a gustar y seguir, tus me gusta son muy importantes para mí

Supongo que te gusta

Origin blog.csdn.net/qq_45176548/article/details/111587388
Recomendado
Clasificación