Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5. dentro del shell, se puede observar la conexión y los datos relacionados con la
respuesta http. accediendo a la variable request en el shell
6. si se desea ver la lista de las tag se debe observar las clases y etiquetas
seleccionadas. en especial la etiqueta nodo que las contiene.
response.xpath("//div[contains(@class, 'tags-box')]/span[@class='tag-item']/a/text()").getall()
response.xpath("//h1/a/text()").get()
3. ingrese a la carpeta del proyecto y luego vamos a ingresar a la carpeta spider, sobre
esta carpeta podemos crear nuestro primer spider con el comando scrapy
genspider nombredominio nombredominio.com
El formato del spider es basado en una clase python como ejemplo se debe hacer
así:
import scrapy
class ExampleSpider(scrapy.Spider):
name = 'ejemplo'
allowed_domains = ['toscrape.com']
start_urls = ['http://quotes.toscrape.com/']
5. Ahora vamos a hacer un ejemplo de extracción de datos sobre la página, para esto
vamos a incluir los xpath previamente elaborados en el método parser como se ve
en el ejemplo de código a continuación. para ejecutar el spider se hace con el
comando scrapy crawl extraccion, extraccion es el nombre del spider
6.
def parse(self, response):
lista= response.xpath("//div[contains(@class, 'tags-
box')]/span[@class='tag-item']/a/text()").getall()
for valor in lista:
print(">>",valor)
7. Finalmente, un ejemplo para almacenar los datos extraídos. en este ejemplo vamos
a generar un archivo json de respuesta el código de ejemplo se presenta a
continuación, para ejecutar el proyecto utilizar el comando scrapy crawl
almacenamiento -o respuesta.json, donde almacenamiento es el nombre del
spider y -o hace referencia a la salida en este caso un archivo respuesta.json.
8.
import scrapy
class ExtraccionSpider(scrapy.Spider):
name = 'extraccion'
allowed_domains = ['toscrape.com']
start_urls = ['http://quotes.toscrape.com/']
quotes=response.xpath("//div[@class='quote']/span[@class='text']/text()").getall()
autores=response.xpath("//small[@class='author']/text()").getall()
yield{
'title':titulo,
'tags':tags,
'quotes':quotes,
'authors':autores
}