我试图用Scrapy从网站中提取json数据,但我遇到了一些问题,比如当我运行我的爬行器时,没有给出错误,并且说爬行了0个页面。我还使用该命令将de输出存储到json文件中,以查看输出。
下面的代码是我的爬虫:
import scrapy
class WineSpider(scrapy.Spider):
name = "SpidyWine"
i = 0
url = 'https://maiscarrinho.com/api/search?q=vinho&pageNumber=%s&pageSize=10'
start_urls = [url % 1]
def parse(self, response):
data = json.loads(response.body)
for item in data['results']:
yield {
'Image': item.get('image')
}
if data['Image']:
i = i + 1
yield scrapy.Request(self.url % i, callback=self.parse)和我的项目类别:
import scrapy
class MaiscarrinhoItem(scrapy.Item):
image = scrapy.Field()
price = scrapy.Field()
supermarket = scrapy.Field()
promotion = scrapy.Field()
wineName = scrapy.Field()
brand = scrapy.Field()现在,我只是在我的爬行器中使用Image字段来让事情变得更容易。此外,当我在爬虫中编写if语句时,我的理想是‘处理’无限的scorlling,而json api有'Image‘表示该页面有内容。
提前感谢
发布于 2016-11-05 20:55:10
除了一个非常小的错误,你做的每件事都是正确的。
包含图像的字段名称为Image而不是image
尝试:
yield {
'Image': item.get('Image')
}settings.py文件中的ITEM_PIPELINES可能也有问题


https://stackoverflow.com/questions/40438189
复制相似问题