如何从Scrapy Python下载图像并将它们保存到文件夹及其在变量中的路径


import scrapy
import json

class Brand(scrapy.Item):
name = scrapy.Field()
url = scrapy.Field()
brand_image = scrapy.Field()
productsList = scrapy.Field()

class QuotesSpider(scrapy.Spider):
name = "brandDetails"
def start_requests(self):
with open('brands.json') as data_file:
data_item = json.load(data_file)
urls = list()
for item in data_item:
urls.append(item["url"])
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
item = Brand()
name = response.css("div.th::text").extract_first()
name = name.replace('Products of ', '')
item['name'] = name
item['url'] = response.url

我想下载一个图像和网址,看起来像这样"/get.aspx?id=1988147"并将下载的图像保存到文件中,保存路径在项目中,例如item['image'].

image = response.css("div.productimage img::attr(src)").extract_first()
# example of src of image = > /get.aspx?id=1988147
yield item

Scrapy有一个内置的机制,用于下载文件,媒体管道。

在最简单的情况下,您可以设置项目的字段(file_urlsimage_urls(,激活settings.py中的管道,并设置要下载到的路径(FILES_STOREIMAGES_STORE(。
如果需要进行其他更改,可以创建自定义子类。

这足以下载您想要的文件,以及保存一些额外的元数据。

相关内容

  • 没有找到相关文章

最新更新