English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Descripción detallada de la instalación y uso básico del framework de rastreo Scrapy en Python

Preámbulo: Ha sido una famosa herramienta de rastreo de python. En los últimos días, he aprendido sobre el framework de rastreo Scrapy y me gustaría compartir mi comprensión con todos. Espero que los maestros me corrijan si hay alguna expresión incorrecta.

I. Primera mirada a Scrapy

Scrapy es una aplicación de marco diseñada para extraer datos del sitio web, que se puede aplicar en una serie de programas que incluyen minería de datos, procesamiento de información o almacenamiento de datos históricos.

Inicialmente, fue diseñado paraRastreo de página(Para ser más exactos,Rastreo de red) diseñado, también se puede aplicar en obtener los datos devueltos por la API (por ejemploAmazon Associates Web Services) o un rastreador de red común.

Este documento le proporcionará una comprensión de los conceptos detrás de Scrapy para que pueda entender cómo funciona y determinar si Scrapy es lo que necesita.

Una vez que esté listo para comenzar su proyecto, puede referirse aTutorial de iniciación

II. Introducción a la instalación de Scrapy

Plataforma de ejecución del framework Scrapy y herramientas auxiliares relacionadas

  1. Python2.7(Versión más reciente de Python3.5Aquí se ha elegido2.7Versión)
  2. Paquete Python: pipandsetuptools. Ahora pip depende de setuptools, si no está instalado, se instalará automáticamente setuptools.
  3. lxml. La mayoría de las distribuciones de Linux vienen con lxml. Si falta, consultehttp://lxml.de/installation.html
  4. OpenSSL. Ya se proporciona en sistemas fuera de Windows (consulte las instrucciones de instalación del plataforma).

Puedes usar pip para instalar Scrapy (se recomienda usar pip para instalar paquetes Python).

pip install Scrapy

Flujo de instalación en Windows:

1、Instalar Python 2.7Después de eso, necesitas modificar la variable de entorno PATH, agregando el programa ejecutable de Python y los scripts adicionales a la ruta del sistema. Añade la siguiente ruta al PATH:

C:\Python27\;C:\Python27\Scripts\;

Además, puedes usar el comando cmd para configurar Path:

c:\python27\python.exe c:\python27\tools\scripts\win_add2path.py

Después de completar la instalación y configuración, puedes ejecutar el comando python --version para ver la versión de Python instalada. (Como se muestra en la imagen)

2、Desdehttp://sourceforge.net/projects/pywin32/Instalarpywin32

Confirma que la descarga coincide con la versión de tu sistema (win32o amd64

Desdehttps://pip.pypa.io/en/latest/installing.htmlInstalar pip

3、Abre la ventana de línea de comandos y confirma que pip se ha instalado correctamente:

pip --versión

4、Hasta ahora Python 2.7 y pip ya se puede ejecutar correctamente. A continuación, instala Scrapy:

pip install Scrapy

Hasta aquí, la instalación de Scrapy en Windows ha terminado.

Tercero, tutorial de introducción a Scrapy

1、Crear el proyecto de ingeniería Scrapy en cmd.

scrapy startproject tutorial

H:\python\scrapyDemo>scrapy startproject tutorial
Nuevo proyecto Scrapy 'tutorial', utilizando el directorio de plantillas 'f:\\python27\\lib\\site-packages\\scrapy\\templates\\project', creado en:
  H:\python\scrapyDemo\tutorial
Puedes comenzar tu primer escarabajo con:
  cd tutorial
  scrapy genspider ejemplo ejemplo.com

2、la estructura del directorio de archivos es la siguiente:

Análisis de la estructura del framework scrapy:

  1. scrapy.cfg: Archivo de configuración del proyecto.
  2. tutorial/: Módulo python del proyecto. Aquí es donde agregará el código.
  3. tutorial/items.py: Archivo de items del proyecto.
  4. tutorial/pipelines.py: Archivo de pipelines del proyecto.
  5. tutorial/settings.py: Archivo de configuración del proyecto.
  6. tutorial/spiders/: Directorio donde se colocan los códigos del escaneador.

3、escribir un simple escaneador

1、en el archivo item.py configure las instancias de campos que se van a capturar en las páginas.

# -*- coding: utf-8 -*-
# Defina aquí los modelos para sus elementos capturados
#
# Ver documentación en:
# http://doc.scrapy.org/en/latest/topics/items.html
import scrapy
from scrapy.item import Item, Field
class TutorialItem(Item):
  title = Field()
  author = Field()
  releasedate = Field()

2、en tutorial/spiders/en el archivo spider.py escribir el sitio web que se va a capturar y los campos que se van a capturar por separado.

# -*-coding:utf-8-*-
import sys
from scrapy.linkextractors.sgml import SgmlLinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from tutorial.items import TutorialItem
reload(sys)
sys.setdefaultencoding("utf-8)
class ListSpider(CrawlSpider):
  # Nombre del escaneador
  name = "tutorial"
  # Configuración de retraso de descarga
  download_delay = 1
  # Dominios permitidos
  allowed_domains = ["news.cnblogs.com"]
  # URL de inicio
  start_urls = [
    "https://news.cnblogs.com"
  ]
  # Regla de captura, sin callback indica que se captura recursivamente en la clase de url
  
    /////
    ////+
  
  
  
    
    
    //div[@id="news_title"]-8')
    item['title'] = title
    author = response.selector.xpath('//div[@id="news_info"]/span/a/text()')[0].extract().decode('utf-8')
    item['author'] = author
    releasedate = response.selector.xpath('//div[@id="news_info"]/span[@class="time"]/text()')[0].extract().decode('
      'utf-8')
    item['releasedate'] = releasedate
    yield item

3、en tutorial/Se guardan los datos en el archivo pipelines.py.

# -*- coding: utf-8 -*-
# Define tus pipelines aquí
#
# No olvides agregar tu pipeline a la configuración de ITEM_PIPELINES
# Ver: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
import json
import codecs
class TutorialPipeline(object):
  def __init__(self):
    self.file = codecs.open('data.json', mode='wb', encoding='utf-8')# Almacenar los datos en data.json
  def process_item(self, item, spider):
    line = json.dumps(dict(item)) + "\n"
    self.file.write(line.decode("unicode_escape"))
    return item

4、tutorial/Configurar el entorno de ejecución en settings.py.

# -*- coding: utf-8 -*-
BOT_NAME = 'tutorial'
SPIDER_MODULES = ['tutorial.spiders']
NEWSPIDER_MODULE = 'tutorial.spiders'
# Deshabilitar cookies, evitar ser baneado
COOKIES_ENABLED = False
COOKIES_ENABLES = False
# Establecer Pipeline, aquí se realiza la escritura de datos en el archivo
ITEM_PIPELINES = {
  'tutorial.pipelines.TutorialPipeline': 300
}
# Establecer la profundidad máxima que puede recorrer la araña
DEPTH_LIMIT = 100

5、Crear un archivo main y ejecutar el código de la araña.

from scrapy import cmdline
cmdline.execute("scrapy crawl tutorial".split())

Finalmente, después de ejecutar main.py, se obtienen los datos JSON de los resultados de la recopilación en el archivo data.json.

Esto es todo el contenido de este artículo, esperamos que sea útil para su aprendizaje y que todos nos apoyen y alentemos el tutorial.

Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga espontáneamente por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha procesado editorialmente por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @ para denunciar y proporcione evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)

Te gustará