【发布时间】:2017-03-19 04:52:52
【问题描述】:
我正在尝试使用 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 语句时,我的想法是“处理”无限滚动,当 json api 具有“图像”时,意味着该页面有内容。
提前致谢
【问题讨论】:
-
你能发布你的运行日志吗?您可以通过
scrapy crawl myspider &> output.log获取它 -
@Granitosaurus 我编辑了我的帖子,你有图像,因为你的命令我的文件是空的。