2
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
4

1 回答 1

-2

Scrapy 具有用于下载文件、媒体管道的内置机制。

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

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

于 2018-09-28T18:16:58.393 回答