1
我正在運行Scrapy CrawlSpider從網站下載圖像。Scrapy重命名圖像
使用管道:
import scrapy
from scrapy.pipelines.images import ImagesPipeline
from PIL import Image
class XPipeline(ImagesPipeline):
def set_filename(self, response):
return 'full/{0}.jpg'.format(response.meta['title'][0])
def get_media_requests(self, item, info):
for image_url in item['image_urls']:
yield scrapy.Request(image_url, meta={'title': item['Sku']})
def get_images(self, response, request, info):
for key, image, buf in super(XPipeline, self).get_images(response, request, info):
key = self.set_filename(response)
yield key, image, buf
這種運作良好,當有每個產品頁面只有一個「image_urls」,但是,它往往是一個產品網頁可以有多個產品圖片的情況。
另外我怎樣才能修改管道添加一個整數值修改圖像標題?
任何幫助,將不勝感激
它不應該像'meta = {'title':item ['Sku'] + i}''而不是?否則,你在'set_filename'中改變標題鍵和'response.meta ['title'] [0]'(爲什麼'[0]')不起作用。 –
@paultrmbrth,啊,我假定海報意思是get_media_requests函數中的'image_urls',但你可能是對的! – paep3nguin