緊接著再識Scrapy-爬取豆瓣圖書来颤,我們打算把每一本圖書的封面都爬下來,畢竟下載圖片是一件很棒的事稠肘「GΓ可以憑借這招去搜集各種表情包呢,還可以省了在某榴辛辛苦苦一個(gè)一個(gè)打開網(wǎng)頁的煩惱呢项阴。
根據(jù)官方文檔滑黔,下載圖片其實(shí)pipeline.py的額外工作而已,大致分為以下幾步
- 在Spider中环揽,額外定義一個(gè)image_urls用來存放圖片鏈接的 item略荡;
- 這個(gè)item會從spider中傳遞到pipeline中
- 在這個(gè)item到了ImagesPipeline后,里面的url經(jīng)由scheduler插隊(duì)到downloader進(jìn)行下載
- 下載完成后歉胶,Scrapy會新建一個(gè)files字段用于存放結(jié)果汛兜。
- 需要額外安裝PIL保證正常工作。
使用方法
在settings.py的ITEM_PIPELINES中加入
'scrapy.pipelines.images.ImagesPipeline':1,在items.py中建立相應(yīng)的item.
import scrapy
class MyItem(scrapy.Item):
# ... 其他字段 ...
image_urls = scrapy.Field()
images = scrapy.Field()在settings.py中添加圖片存放目錄,如
IMAGES_STORE = 'G:/images'(非必須)假設(shè)你覺得image_urls和images不夠霸氣跨扮,想換個(gè)名字序无,如douban_urls验毡,douban你可以在settings.py中增加如下字段,用來聲明新的字段:
IMAGES_URLS_FIELD = ‘douban_urls'
IMAGES_RESULT_FIELD = 'douban'
文件命名格式為:下載圖片url的SHA1 hash值帝嗡,不喜歡的話可以看這里進(jìn)行深入研究晶通,反正我就看圖,湊合用了哟玷。