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
答案 0 :(得分:0)
Scrapy具有用于下载文件media pipelines的内置机制。
在最简单的情况下,您将设置项目的字段(file_urls
或image_urls
),激活settings.py
中的管道,然后设置路径({{1 }}或FILES_STORE
)下载。
如果需要进行其他更改,可以创建一个自定义子类。
这足以下载所需的文件,并保存一些其他元数据。