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