Tabla de contenido
Comando global
- banco Ejecutar prueba de referencia rápida
- buscar Obtener una URL con el descargador de Scrapy
- genspider Genera una nueva araña usando plantillas predefinidas
- RunSpider Ejecuta una araña autónoma (sin crear un proyecto)
- configuración Obtener valores de configuración
- consola de raspado interactivo shell
- startproject Crear nuevo proyecto
- versión Imprimir versión Scrapy
- ver URL abierta en el navegador, como lo ve Scrapy
buscar comando
El comando fetch se utiliza principalmente para mostrar el proceso de rastreo del rastreador.
Por ejemplo, podemos mostrar el proceso de rastreo de la URL correspondiente en forma de URL scrapy fetch. Tome el proceso de mostrar el rastreador para rastrear la página de inicio de Baidu (http://www.baidu.com) como ejemplo, como se muestra a continuación.
En este punto, si usa este comando fuera del directorio del proyecto Scrapy, se invocará el rastreador predeterminado de Scrapy para rastrear la página web. Si usa este comando en un directorio de proyecto de Scrapy, se llamará al rastreador del proyecto para rastrear la página web.
Cuando usamos el comando fetch, también podemos usar ciertos parámetros para el control correspondiente.
Puede utilizar scrapy fetch -h para enumerar todos los parámetros relacionados con la búsqueda disponibles.
Por ejemplo, podemos usar el parámetro -headers para controlar la visualización de la información del encabezado cuando el rastreador correspondiente rastrea la página web, o usar el parámetro -nolog para controlar que no se muestre la información del registro. Al mismo tiempo, también podemos usar el parámetro --spider-SPIDER para controlar cuál usar El rastreador usa el parámetro -logfile = FILE para especificar el archivo para almacenar información de registro y usa el
parámetro -loglevel-LEVEL para controlar el nivel de registro.
Como se muestra a continuación, usamos el parámetro --headers y el parámetro --nolog para controlar la información del encabezado cuando el rastreador rastrea la página de inicio de Sina News (ttp: //news.sina.com.cn/) y no muestra la información de registro.
comando RunSpider
A través del comando runspider en Scrapy, podemos realizar un proyecto de rastreador que no dependa de Scrapy y ejecutar directamente un archivo rastreador.
A continuación, mostraremos un ejemplo del uso del comando ruspioler para ejecutar un archivo de rastreo. Primero, escriba un archivo de rastreo de Scrapy, como se muestra a continuación.
from scrapy.spiders import Spider
class FirstSpider(Spider):
name = 'first'
allowed_domains = ['baidu.com']
start_urls = ['https://www.baidu.com',]
def parse(self, response):
pass
Aquí, solo necesita comprender brevemente el archivo del rastreador, porque aprenderemos cómo escribir un archivo del rastreador en detalle más adelante. Primero, defina el nombre del archivo del rastreador como primero y, al mismo tiempo, defina la URL de inicio del rastreo como htp: //www.baidu.com.
Luego, puede usar el comando runpider para ejecutar el archivo rastreador directamente. En este momento, no necesita depender de un proyecto Scrapy completo para ejecutarlo, solo necesita tener el archivo rastreador correspondiente.
Como se muestra a continuación, ejecutamos el archivo del rastreador a través de scrapy runspider y configuramos el nivel de registro en INFO.
Se puede ver que a través de esta instrucción, el archivo del rastreador finalmente se completó con éxito sin depender del proyecto Scrapy.
comando de configuración
Podemos ver la información de configuración correspondiente a Scrapy a través del comando de configuración en Scrapy.
Si usa el comando sttings en el directorio del proyecto Scrapy, puede ver la información de configuración del proyecto correspondiente. Si usa el comando de configuración fuera del directorio del proyecto Scrapy, puede ver la información de configuración predeterminada de Scrapy.
comando de shell
La terminal interactiva de Scrapy (shell de Scrapy) se puede iniciar mediante comandos de shell.
La terminal interactiva de Scrapy se usa a menudo durante el desarrollo y la depuración. El uso de la terminal interactiva de Scrapy puede depurar las respuestas del sitio web sin iniciar el rastreador de Scrapy. De manera similar, en esta terminal interactiva, también podemos escribir algo de Python El código se prueba en consecuencia.
Por ejemplo, puede usar comandos de shell para crear un entorno de terminal interactivo para rastrear la página de inicio de Baidu y configurarlo para que no genere información de registro, como se muestra a continuación:
Se puede ver que después de ejecutar este comando, habrá objetos Scrapy disponibles y comandos de acceso directo, como elemento, respuesta, configuración, araña, etc., y entrar en el modo interactivo. Después de ">>>", puede ingresar comandos interactivos y El código correspondiente.
En este modo interactivo, puede extraer el título de la página web rastreada. En este momento, lo extraemos mediante expresiones XPath. Quizás los lectores no estén familiarizados con las expresiones XPath en este momento. Explicaremos los conceptos básicos de las expresiones XPath más adelante. Aquí, solo necesita saber el significado de la siguiente expresión XPath "/ html / head / title": extraiga la información correspondiente a la etiqueta <title> en la etiqueta <head> debajo de la etiqueta <html)> de la página web. Sabemos que la información de la etiqueta en este momento es la información del título de la página web, por lo que el propósito de la siguiente expresión XPath "/ htm / headtitle" es extraer la información del título de la página web rastreada.
Como se muestra a continuación, extrajimos la información correspondiente a través de sel.xpath y generamos la información mencionada a través del código Python.
>>> ti = sel. xpath ("/ html / head / title")
>>> print (ti)
[<selector xpath = '/ html / head / title' data = '<title> Baidu, lo sabrás </tit1e> '>]
>>>
Puede ver que el contenido después de los datos son los datos extraídos. El título "<title> Baidu en Baidu, sabrá que </title>" se extrajo correctamente.
Además, también podemos realizar diversos desarrollos y depuración en el terminal interactivo.
Si queremos salir de la terminal interactiva, podemos usar exit () para lograr, como se muestra a continuación:
>>> exit ()
D: \ Python35 \ myweb \ part12>
Arriba analizamos cómo usar comandos de shell en Scrapy, y aprendemos a usar comandos de shell Hasta cierto punto, puede facilitar enormemente el desarrollo y la depuración de rastreadores, ya que a través de comandos de shell podemos desarrollar y depurar rastreadores directamente sin crear un proyecto Scrapy.
comando startproject
El comando startproject La sección anterior se ha analizado en detalle y se utiliza principalmente para crear proyectos.
comando de versión
Mediante el comando de versión, puede mostrar directamente la información relacionada con la versión de Scrapy.
Por ejemplo, si desea ver la información de la versión de Scrapy, puede usar el siguiente código:
Si también desea ver otra información de versión relacionada con Scrapy (incluida la información de versión de Scrapy mencionada anteriormente, por supuesto), como la información de versión de titelptotopltforo, puede agregar el parámetro -v al comando de versión, como se muestra a continuación:
Como puede ver, la información de la versión relacionada con Scrapy se ha mostrado en detalle en este momento.
comando de vista
Mediante el comando de visualización, podemos lograr la función de descargar una página web y visualizarla con un navegador.
Por ejemplo, podemos descargar la página de inicio de NetEase News (http://www.baidu.com/) mediante el siguiente comando y ver automáticamente la página web descargada con un navegador.
(venv) D: \ pycharmproject \ pythonlearning> scrapy view http://www.baidu.com/ Después de
ejecutar este comando, se abrirá automáticamente el navegador y mostrará la página que se ha descargado en el local (tenga en cuenta que la página web se ha descargado en el local , Por lo tanto, la URL en este momento es la dirección de la página web local), como se muestra en la Figura 12-5.
Comando de proyecto
A continuación, analizamos en detalle el uso de los comandos del proyecto Scrapy.
Dado que los comandos del proyecto Scrapy solo se pueden usar en función del proyecto del rastreador Scrapy, primero ingresamos un proyecto del rastreador Scrapy ya creado, como se muestra a continuación.
(venv) D:\pycharmproject\pythonlearning>cd myfirstpjt
Utilice scrapy -h para ver los comandos disponibles en el proyecto.
Comandos disponibles:
banco Ejecutar
comprobación de prueba comparativa rápida Comprobar contratos de araña
rastrear Ejecutar una
edición de araña Editar
búsqueda de araña Obtener una URL usando el descargador de
Scrapy genspider Generar una nueva araña usando la
lista de plantillas predefinidas Lista de arañas disponibles
analizar Analizar la URL (usando su araña) e imprimir los resultados
runpider Ejecutar una araña autónoma (sin crear un proyecto)
configuración Obtener valores de configuración
shell Consola de extracción interactiva
startproject Crear nuevo proyecto de
la versión Print Scrapy versión
vista Abrir URL en el navegador, como se ve por Scrapy
Comando de banco
Utilice el comando bench para probar el rendimiento del hardware local.
Cuando ejecutamos scrapy bench, se creará un servidor local y se rastreará a la máxima velocidad. Para probar el rendimiento del hardware local y evitar la influencia de muchos otros factores, solo realizamos seguimiento de enlaces sin procesamiento de contenido.
Como se muestra a continuación, utilizamos un banco scrapy para probar el rendimiento del hardware local.
Puede observarse que en los resultados de las pruebas obtenidas, solo en términos de rendimiento del hardware, se muestra que se pueden rastrear aproximadamente miles de páginas web por minuto. Esto es solo un estándar de referencia. Cuando el proyecto de orugas se ejecuta realmente, la velocidad será diferente debido a varios factores. En términos generales, la velocidad de funcionamiento real se puede comparar con la velocidad de referencia para optimizar y mejorar el proyecto de orugas.
Comandos de Genspider
Puede utilizar el comando genspider para crear archivos rastreadores Scrapy, que es una forma rápida de crear archivos rastreadores. El uso de este comando puede generar directamente un nuevo archivo de rastreador basado en la plantilla de rastreador existente, lo cual es muy conveniente. De manera similar, debe estar en el directorio del proyecto del rastreador Scrapy para usar este comando.
Puede utilizar el parámetro -l de este comando para ver las plantillas de rastreador disponibles actualmente, como se muestra a continuación.
Como puede ver, las plantillas de rastreador disponibles actualmente son básicas, rastreo, csvfeed y xmlfeed.
En este punto, puede generar un archivo de rastreador basado en cualquiera de las plantillas de rastreador. Por ejemplo, podemos usar la plantilla básica para generar un archivo de rastreador con el formato "scrapy genspider -t plantilla nuevo nombre de rastreador, nuevo nombre de dominio rastreado por rastreador", de la siguiente manera Mostrado.
Verificar comando
La prueba del rastreador es más problemática, así que use contract (contract9) para probar el rastreador en Scrapy.
Utilice el comando de verificación en Scrapy para realizar la verificación de contratos en un archivo rastreador.
Por ejemplo, para verificar el contrato (contrato) del archivo rastreador weisuen.py creado recientemente en base a la plantilla, podemos usar "scrapy check crawler name" para implementarlo. Tenga en cuenta que en este momento, el nombre del rastreador después de "check" no es el nombre del archivo rastreador. Sin sufijo, como se muestra a continuación.
Se puede ver que se pasa la inspección del contrato del archivo del rastreador y el resultado que se muestra es "OK".
Comando de rastreo
Puede iniciar un rastreador mediante el comando de rastreo. El formato de inicio es "nombre del rastreador de rastreo".
Cabe señalar que el rastreador va seguido del nombre del rastreador, no del nombre del proyecto del rastreador.
Comando de lista
Mediante el comando de lista en Scrapy, puede enumerar los archivos del rastreador disponibles actualmente.
Por ejemplo, podemos ingresar al directorio donde se encuentra el proyecto del rastreador myfirstpjit en la línea de comando, y luego usar la lista scrapy para listar directamente los archivos del rastreador disponibles actualmente, como se muestra a continuación.
Como puede ver, hay un archivo rastreador que se puede usar en este momento, primero.
Comando de edición
A través del comando de edición en Scrapy, podemos abrir directamente el editor correspondiente para editar el archivo del rastreador. Este comando causará un pequeño problema cuando se ejecute en Windows, y en Windows, generalmente usamos Python IDE (como PyCharm) para apuntar directamente al proyecto del rastreador. Para la administración y edición, este comando es muy conveniente en Linux.
Parse comando
A través del comando parse, podemos obtener la URL URL especificada y usar el archivo rastreador correspondiente para su procesamiento y análisis.
Por ejemplo, podemos usar "scrapy parse http://www.baidu.com" para obtener la página de inicio de Baidu (htp: //www.baidu.com), porque no hay un archivo de rastreo o
una función de procesamiento especificados , por lo que en este momento El archivo del rastreador predeterminado y la función de procesamiento predeterminada se utilizarán para el procesamiento correspondiente, como se muestra a continuación.
El comando "scrapy parse" tiene muchos parámetros. Podemos verificar los parámetros específicos mediante scrapy parse -h, como se muestra a continuación.
Opciones
=======
--help, -h muestra este mensaje de ayuda y sale
--spider = SPIDER usa esta araña sin buscar una
-a NOMBRE = VALOR establece un argumento de araña (puede repetirse)
--pipelines procesa elementos a través de canalizaciones
--nolinks no muestran enlaces a seguir (solicitudes extraídas)
--noitems no muestra elementos raspados
--nocolor evita usar pigmentos para colorear la salida
--reglas, -r usa las reglas de CrawlSpider para descubrir la devolución de llamada
- callback = CALLBACK, -c CALLBACK
use esta devolución de llamada para analizar, en lugar de buscar una
devolución de llamada
--meta = META, -m META inyectar meta adicional en la Solicitud, debe ser una
cadena json sin procesar válida
--cbkwargs = CBKWARGS inyectar kwargs de devolución de llamada adicionales en la Solicitud, debe
ser una cadena json sin procesar válida
--depth = DEPTH, -d DEPTH
profundidad máxima para analizar solicitudes [predeterminado: 1]
--verbose, -v imprime cada nivel de profundidad uno por uno
Opciones globales
--------------
--logfile = archivo de registro ARCHIVO . si se omite stderr se usará
--loglevel = LEVEL, -L LEVEL
nivel de registro (predeterminado: DEBUG)
--nolog deshabilita el registro por completo
--profile = FILE escribe python cProfile stats en FILE
--pidfile = FILE escribe ID de proceso en FILE
- -set = NAME = VALUE, -s NAME = VALUE
set / override setting (puede repetirse)
--pdb habilitar pdb en caso de falla
Como puede ver, estos parámetros se dividen aproximadamente en dos categorías: parámetros comunes (Opciones) y parámetros globales (Opciones globales). Básicamente hemos visto parámetros globales en otros comandos, por lo que aquí nos enfocamos principalmente en los parámetros correspondientes al comando ( Opciones).
A continuación se resumen los parámetros de uso común y sus significados, como se muestra en la Tabla 12-2.
A través de la tabla anterior, puede saber claramente qué parámetros comunes están en el comando narse.