【问题标题】:how to download images from scrapy python and save them to a folder and their path in the variable如何从scrapy python下载图像并将它们保存到文件夹及其变量中的路径
【发布时间】:2018-09-28 17:27:58
【问题描述】:
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

我想下载一个图像和 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

【问题讨论】:

    标签: python-3.x selenium scrapy scrapy-spider scrapy-item


    【解决方案1】:

    Scrapy 有一个内置的文件下载机制,media pipelines

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

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

    【讨论】:

    • '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 url = response.css("div.productimage img::attr(src)").extract_first() url = "ozhat -turkiye.com”; + url item['image_urls'] = url yield item' yield item
    • cmets 中的代码不可读。另外,您对该代码有疑问吗?
    猜你喜欢
    • 1970-01-01
    • 2019-11-18
    • 2019-05-08
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多