尝试抓取图像时,scrapy返回“响应内容不是文本”

时间:2018-11-30 13:49:19

标签: python scrapy

我正在尝试下载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命令中进行调整?

1 个答案:

答案 0 :(得分:0)

我认为您误解了图像管道的工作方式。
您正在尝试创建对图像网址本身的请求并将其解析为HTML。

相反,您应该仅将图像网址添加到image_urls的{​​{1}}中(就像您在myitem中尝试做的那样)。