吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1513|回复: 2
收起左侧

[已解决] 求助,老哥们,scrapy的ImagesPipeline图片下载器怎么自定义下载路径?

 关闭 [复制链接]
应真先生 发表于 2019-8-19 22:36
本帖最后由 应真先生 于 2019-8-20 02:32 编辑

爬一个汉服论坛所有帖子里面的图片,标题保存为title,帖子网址保存为image_url,ImagesPipeline会读取图片链接,但是item队列里面好像没有读取到title,自己改了file_path好像不能读取到title,老哥们帮忙看看我问题出在哪里?
代码链接: https://pan.baidu.com/s/1IjwVfzFJq5bR0VBWKtZlfw 提取码: xf71 复制这段内容后打开百度网盘手机App,操作更方便哦

这个是pipeline
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
import hashlib
from scrapy.pipelines.images import ImagesPipeline
from scrapy import Request
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
from scrapy.utils.python import to_bytes


class HanfuPipeline(object):
    def process_item(self, item, spider):
        return item

class A52HanfuPipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        # 处理对象:每组item中的每张图片
        for image_url in item.get('image_url'):
            yield Request(image_url,meta={'item':item})

    def file_path(self, request, response=None, info=None):
        item = request.meta['item']
        print('item'+item)
        title = item['title'][0]
        print('标题'+title)
        title = title.replace(" ","")
        end = request.url.split('/')[-1].split('.')[-1]
        image_guid = hashlib.sha1(to_bytes(request.url)).hexdigest()
        image_name = "%s%s%s"%(image_guid,'.',end)
        file_name = u'full/{0}/{1}'.format(title,image_name)
        print(file_name)
        return file_name

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1170 发表于 2019-8-20 00:25
本帖最后由 1170 于 2019-8-20 00:36 编辑

坐等大佬
 楼主| 应真先生 发表于 2019-8-20 02:32
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 04:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表