本文主要是介绍Scrapy实战-下载豆瓣图书封面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
紧接着再识Scrapy-爬取豆瓣图书,我们打算把每一本图书的封面都爬下来,毕竟下载图片是一件很棒的事。可以凭借这招去搜集各种表情包呢,还可以省了在某榴辛辛苦苦一个一个打开网页的烦恼呢。
根据官方文档,下载图片其实pipeline.py的额外工作而已,大致分为以下几步
- 在Spider中,额外定义一个image_urls用来存放图片链接的 item;
- 这个item会从spider中传递到pipeline中
- 在这个item到了ImagesPipeline后,里面的url经由scheduler插队到downloader进行下载
- 下载完成后,Scrapy会新建一个files字段用于存放结果。
- 需要额外安装PIL保证正常工作。
使用方法
在settings.py的ITEM_PIPELINES中加入
'scrapy.pipelines.images.ImagesPipeline':1,在items.py中建立相应的item.
import scrapy
class MyItem(scrapy.Item):
# ... 其他字段 ...
image_urls = scrapy.Field()
images = scrapy.Field()在settings.py中添加图片存放目录,如
IMAGES_STORE = 'G:/images'(非必须)假设你觉得image_urls和images不够霸气,想换个名字,如douban_urls,douban你可以在settings.py中增加如下字段,用来声明新的字段:
IMAGES_URLS_FIELD = ‘douban_urls'
IMAGES_RESULT_FIELD = 'douban'
文件命名格式为:下载图片url的SHA1 hash值,不喜欢的话可以看这里进行深入研究,反正我就看图,凑合用了。
这篇关于Scrapy实战-下载豆瓣图书封面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!