scrapy爬取圖片,自定義圖片下載路徑和圖片名稱

最近在做一個爬去某奢侈品網站圖片的項目,需要把不同網站上爬取得圖片放在不同的目錄下,而且需要自定義圖片的名稱,圖片下載一般都會用到ImagesPipeline,因此,通過查看源碼,在Python3-scrapy1.5版本下,代碼如下:

pipeline.py中添加如下代碼:

class GoodsImagePipeline(ImagesPipeline):

    def get_media_requests(self, item, info):  # 下載圖片
        index = 0
        for image_url in item['goods_image_url']:
              index = index+1
              yield Request(image_url, meta={'item': item,'index': index})  # 添加meta是爲了下面重命名文件名使用

    def file_path(self, request, response=None, info=None):
        item = request.meta['item']  # 通過上面的meta傳遞過來item
        index = request.meta['index']  # 通過上面的index傳遞過來列表中當前下載圖片的下標
        # 圖片文件名
        goods_brand_no = item['goods_brand_no'][0]
        goods_brand = item['goods_brand'][0]
        goods_brand = goods_brand.replace(" ","")
        end = request.url.split('/')[-1].split('.')[-1]
        image_name = "%s%s%s%s%s%s%s"%(goods_brand,'-',goods_brand_no,'-',str(index),".",end)
        # 圖片下載目錄 
        filename = u'full/{0}/{1}'.format(item['goods_from'],image_name)
        return filename
以上代碼,大家可以根據自己的具體需求進行修改,最後謝謝
https://www.cnblogs.com/moon-future/p/5545828.html此篇文章給的思路。

發佈了29 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章