如何使用scrapy下载图像然后上传到s3服务器

时间:2014-09-10 02:30:12

标签: python mongodb scrapy

我想在蜘蛛关闭时将图像上传到s3,
我的方法现在是发送mongodb中的所有图像:upload_s3(ShA.objects.all())
但是我想编辑它以将图像发送到此次scrapy下载。

我需要将变量sh.images从def process_item()发送到def close_spider(),让mongo过滤此次scrapy抓取的项目

如何编辑以达到它?

这是我的管道:

from mongo.models import ShA
from uploads3 import upload_s3 
class ShPipeline(object):
    def process_item(self, item, spider):
        if isinstance(item, ShaItem):  
            sh = item.save(commit=False)  
            sh_exist = ShA.objects.filter(link=sh.link)  
            if sh_exist:
                sh.id = sh_exist[0].id
            sh.save()
            #sh.images
            return item

    def close_spider(self, spider,item):
        if spider.name == "email":
            upload_s3(ShA.objects.all()) 
            #upload_s3(ShA.objects.get(images=sh.images)) no use,need to get sh.images from def process_item

1 个答案:

答案 0 :(得分:0)

您可以使用self,但我建议您使用our pipeline