我正在尝试下载scrapy的图像,该图像返回以下错误:
raise NotSupported("Response content isn't text")
scrapy.exceptions.NotSupported: Response content isn't text
2018-11-30 14:36:09 [scrapy.core.scraper] ERROR: Spider error processing <GET https://www.example.bla/39307b2103.jpg>
这是我正在使用的核心响应代码:
...
myitem['i10_img'] = 'https://www.example.de' + response.css("#fullscreen_img::attr(src)").extract_first()[2:]
yield scrapy.Request(myitem['i10_img'],callback=self.parseImages, meta={'item': myitem})
return myitem
def parseImages(self, response):
for elem in response.xpath("//img"):
img_url = elem.xpath("@src").extract_first()
yield ImageItem(image_urls=[img_url])
items.py
class ImageItem(scrapy.Item):
image_urls = scrapy.Field()
images = scrapy.Field()
是否需要在yield命令中进行调整?
答案 0 :(得分:0)
我认为您误解了图像管道的工作方式。
您正在尝试创建对图像网址本身的请求并将其解析为HTML。
相反,您应该仅将图像网址添加到image_urls
的{{1}}中(就像您在myitem
中尝试做的那样)。