2
我正在練習使用scrapy使用自定義imagePipeline裁剪圖像。 我用這code:使用自定義scrapy imagePipeline下載圖像並覆蓋現有圖像
class MyImagesPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
for image_url in item['image_urls']:
yield Request(image_url)
def convert_image(self, image, size=None):
if image.format == 'PNG' and image.mode == 'RGBA':
background = Image.new('RGBA', image.size, (255, 255, 255))
background.paste(image, image)
image = background.convert('RGB')
elif image.mode != 'RGB':
image = image.convert('RGB')
if size:
image = image.copy()
image.thumbnail(size, Image.ANTIALIAS)
else:
# cut water image TODO use defined image replace Not cut
x,y = image.size
if(y>120):
image = image.crop((0,0,x,y-25))
buf = StringIO()
try:
image.save(buf, 'JPEG')
except Exception, ex:
raise ImageException("Cannot process image. Error: %s" % ex)
return image, buf
它運作良好,但有一個問題。
如果文件夾中有原始圖像,則 然後運行蜘蛛,
它下載的圖像將不會替換原來的圖像。
我怎樣才能覆蓋原始圖像?
謝謝!我設置了IMAGES_EXPIRES = 0。並且工作得很好 – user2492364 2014-09-05 01:48:19