En este artículo, veremos cómo escribir una salida scrapy en un archivo JSON en Python.
Usando el shell de línea de comando scrapy
Esta es la forma más fácil de guardar datos en JSON usando el siguiente comando:
scrapy crawl <spiderName> -O <fileName>.json
Esto generará un archivo con un nombre de archivo proporcionado que contiene todos los datos extraídos.
Tenga en cuenta que usar -O en la línea de comando sobrescribe cualquier archivo existente con ese nombre, mientras que usar -o agrega el nuevo contenido al archivo existente. Sin embargo, agregar a un archivo JSON hace que el contenido del archivo no sea JSON. Entonces use el siguiente comando para agregar datos a un archivo existente.
scrapy crawl <spiderName> -o <fileName>.jl
Nota: .jl representa el formato de líneas JSON.
Implementación paso a paso:
Paso 1: Crear el proyecto
Ahora, para comenzar un nuevo proyecto en scrapy, use el siguiente comando
scrapy startproject tutorial
Esto creará un directorio con el siguiente contenido:
Vaya al directorio del tutorial que creamos usando el siguiente comando:
cd tutorial
Paso 2: Crear una araña (tutorial/spiders/quotes_spider.py)
Las arañas son los programas que el usuario define y utiliza scrapy para extraer información de los sitios web. Este es el código de nuestro Spider. Cree un archivo llamado quotes_spider.py en el directorio tutorial/spiders de su proyecto:
Python3
import scrapy class QuotesSpider(scrapy.Spider): # name of variable should be 'name' only name = "quotes" # urls from which will be used to extract information # list should be named 'start_urls' only start_urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] def parse(self, response): # handle the response downloaded for each of the # requests made should be named 'parse' only for quote in response.css('div.quote'): yield { 'text': quote.css('span.text::text').get(), 'author': quote.css('small.author::text').get(), 'tags': quote.css('div.tags a.tag::text').getall(), }
Esta es una araña simple para obtener las citas, los nombres de los autores y las etiquetas del sitio web.
Paso 5: Ejecutar el programa
Para ejecutar el programa y guardar los datos garabateados en JSON usando:
scrapy crawl quotes -O quotes.json
Podemos ver que se ha creado un archivo quotes.json en la estructura de nuestro proyecto, este archivo contiene todos los datos extraídos.
Salida JSON:
Estas son solo algunas de las muchas citas del archivo quotes.json extraído por nuestra araña.
Publicación traducida automáticamente
Artículo escrito por hrshit2000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA