es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

scrapy: no se encontró la araña (¿nombre o no se obtuvieron datos?)

Estoy tratando de usar Scrapy para obtener el nombre del producto. Cuando he compilado el entorno de Scrapy y he intentado mi primer intento, falló. La salida muestra: KeyError: “no se encuentra la araña: yahoo”
¿Qué está mal en el código? Espero poder obtener algún consejo. Gracias.

“`
import scrapy
from bs4 import BeautifulSoup

class yahooCrawler(scrapy.Spider):
name = “yahoo”
start_urls = [‘https://tw.mall.yahoo.com/search/product?p=%E5%B1%88%E8%87%A3%E6%B0%8F’]
def parse(self,response):
res = BeautifulSoup(response.body)
for product in res.find(“BaseGridItem

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el nombre de la araña utilizado en el comando para ejecutar la araña de Scrapy. La araña está definida con el nombre “yahooCrawler”, pero el mensaje de error muestra “araña no encontrada: yahoo”.

    Para solucionarlo, asegúrese de ejecutar la araña con el nombre correcto:

    scrapy crawl yahooCrawler
    

    Además, el método “find” en la función “parse” debe utilizar el nombre de la etiqueta en lugar del nombre de la clase. Por ejemplo:

    for product in res.find_all("h3"):
        print(product.text)
        yield {"product_name": product.text}
    

    Esto encontrará todas las etiquetas “h3” en la página y extraerá su contenido de texto como nombre del producto.

Comments are closed.