J'essaie d'obtenir des données à partir d'un site Web, tout semble être correct et le xpath a été testé sur le shell.Scrapy retournant un fichier json vide
# -*- coding: utf-8 -*-
from scrapy.contrib.spiders import CrawlSpider
class KabumspiderSpider(CrawlSpider):
name = "kabumspider"
allowed_domain = ["www.kabum.com.br"]
start_urls = ["https://www.kabum.com.br"]
def parse(self, response):
categorias = response.xpath('//p[@class = "bot-categoria"]/a/text()').extract()
links = response.xpath('//p[@class = "bot-categoria"]/a/@href').extract()
for categoria in zip(categorias, links):
info = {
'categoria': categoria[0],
'link': categoria[1],
}
yield info
Bien que, la sortie semble être:
[
Quel est le problème avec mon code?
Avez-vous essayé de tester les sorties dans le shell scrapy? De même, vous devez probablement créer des éléments en premier, écrire les sorties dans les propriétés de l'élément et écrire les éléments dans le fichier JSON. – cyril
J'ai utilisé des objets mais je pensais que cela aurait pu être le problème, donc je l'ai fait encore cette fois en utilisant des dictionnaires ... Tout semble fonctionner très bien dans la coquille scrapy –
si vous mettez «print's dans le pour, peut tu les vois? Avez-vous également un pipeline personnalisé activé? – eLRuLL