继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第9天 Scrapy打造搜索引擎 scrapy配置图片下载

残梦ming
关注TA
已关注
手记 26
粉丝 2
获赞 0

课程名称:Scrapy打造搜索引擎(分布式爬虫)


课程章节:scrapy配置图片下载


主讲老师:bobby


课程内容:

今天学习的内容包括:scrapy配置图片下载


课程收获:

        

    1.图片下载相关配置(settings.py)

        1.settings.py中配置图像管道

                    要启用媒体管道,必须首先将其添加到项目中 ITEM_PIPELINES 设置。

                    对于图像管道,请使用:ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline':  1}

                    http://img1.mukewang.com/62f71c76000194fa12960801.jpg

                

            

        2.配置图片本地存储地址

            然后,将目标存储设置配置为用于存储下载的图像的有效值。否则,管道将保持禁用状态,即使将其包含在 ITEM_PIPELINES 设置。

            project_dir = os.path.dirname(os.path.abspath(__file__))

            IMAGES_STORE = os.path.join(project_dir, 'images')

            http://img4.mukewang.com/62f71cac0001805721840961.jpg

            


            

        3.配置下载item中的哪个字段的url地址

                IMAGES_URLS_FIELD = 'front_image_url'  #j obbole.py中yieldarticle_item后,则会下载图片并保存至images文件夹下

                http://img3.mukewang.com/62f71ce40001160c24001288.jpg





2.图片下载

        1.下载图片时出现ValueError: Missing scheme in request url: h错误

                http://img1.mukewang.com/62f71cff000118f824001288.jpg


            原因:item中的item['front_image_url']数据应该是list类型的数据而非str类型数据

                http://img4.mukewang.com/62f71d1d000150ea24001288.jpg

                http://img4.mukewang.com/62f71d2800018c0724001288.jpg

        2.图片下载成功

                http://img2.mukewang.com/62f71d5600013af524001288.jpg





3.自定义图片下载管道

    1.代码

            

# 能够定义Item并设置值,然后使得Scrapy自动将值放到Pipeline中,Pipeline中专门做数据的保存处理
class ArticlespiderPipeline:
    def process_item(self, item, spider):
        return item


# 图片下载过程中的拦截
class ArticleImagePipeline(ImagesPipeline):
    def item_completed(self, results, item, info):
        if "front_image_url" in item:
            image_file_path = ""
            for ok, value in results:
                image_file_path = value['path']
            item['front_image_path'] = image_file_path

        return item

        http://img1.mukewang.com/62f71e620001d67714630981.jpg


    

    2.查看results的值

            value['path']的值为图片存储在本地的值

                http://img3.mukewang.com/62f71e8c0001a4a924001288.jpg

                http://img.mukewang.com/62f71e990001d46324001288.jpg

            

            注:自动将填补item['front_image_path']的值

                http://img.mukewang.com/62f71ebb000166ae14650991.jpg

                http://img1.mukewang.com/62f71eca00016e5620641098.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP