图片路径

Day88 图片路径存储且item的json化

在pipline中重写item_completed方法

10-08侠课岛    基础入门       

后端/后端/Python 由浅入深入门 7     0     126

总结

1.item_completed()方法

  • 语法:item_completed(results, items, info)

  • 当一个单独项目中的所有图片请求完成时(不管下载成功或者失败),ImagesPipeline.item_completed() 方法将被调用。item_completed()方法必须返回将发送到后续item pipeline阶段的输出,因此必须返回或删除item(默认情况下item_completed会返回全部item);

2.创建md5函数

  • 我们可以使用scrapy中的hashlib.md5 处理 url,首先在项目settings文件的同一目录下,创建一个叫utils的package,然后在这个包里创建一个md5文件;

  • 使用之前先从hashlib中导入md5,把hashlib中md5()实例化,然后用update传入url,再用 hexdigest() 提取摘要。还可以使用isinstance()来判判断传入值编码类型,使用encode()方法将unicode编码转换成其他编码的字符串等;

3.获取图片路径保存到item中并写入

  • 首先在ImagePipeline中重写item_completed()方法获取图片的保存路径;

  • 然后在item中添加字段,在spider中返回item,需要使用到md5函数;

  • 在pipelines.py文件中自定义一个用于将item写入文件的Pipeline类,将spider中返回的item转化为字典,并将字典json化后写入到文件,再次返回item;

  • 将自定义的Pipeline类添加到settings文件中,给这个类设定的级别一定要低于用于图片下载的Pipeline类的级别;

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

7

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录



|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?