我正在尝试使用scrapy从eCommerce网站上抓取图像,但对于一些项目(180个项目中的5-10个),图像源输出类似于以下内容-
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8A . 对于其余的项目,我得到了正确的图像URL。有人能帮我一下吗。
我的代码是用于图像源提取的代码是
image = response.css('.productimage img::attr(src)').extract()由于这个原因,我在将图像下载到本地系统时出现错误。
发布于 2020-10-03 16:54:35
这
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8A实际上是使用base64将图像字节编码为字符串,您可以使用base64内置模块将其作为文件进行获取。考虑下面的简单示例:
import base64
txt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8A"
content = base64.b64decode(txt.split(',')[-1])
with open('image.png','wb') as f:
f.write(content)它将在当前工作目录下创建image.png文件。
发布于 2020-10-03 17:03:44
此base64数据:
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8A
它是空的png图像(与图像无关)
通常,这种base64 data出现在电子商务网站上,用于没有图片的产品。
我建议您将带有base64....的产品解释为没有图像的产品。
https://stackoverflow.com/questions/64182233
复制相似问题