Scrapy網絡爬蟲:暱圖網圖片下載與縮略圖生成(附代碼)

項目要求

爬取動漫動畫和文化藝術兩個大類的首頁的圖片(演示ImagesPipeline使用,因此不爬取所有圖片),並生成兩張縮略圖和過濾掉小圖片。

項目實現

1. 新建scrapy爬蟲項目和ImageDownloadSpider。

scrapy startproject imagedownload

cd imagedownload

scrapy genspider ImageDownloadSpider nipic.com

2. 開啟圖片管道並配置參數

ITEM_PIPELINES = {

'scrapy.pipelines.images.ImagesPipeline': 1,

}

IMAGES_STORE = 'download_image' # 圖片保存路徑

IMAGES_MIN_HEIGHT = 150 # 圖片的最小高度

IMAGES_MIN_WIDTH = 150 # 圖片的最小寬度

IMAGES_THUMBS = {

'small': (50, 50),

'big': (150, 150),

} # 縮略圖生成

3. 開發Spider

class ImagedownloadSpider(scrapy.Spider):

name = "ImageDownload"

allowed_domains = []

# 僅爬取動漫動畫和文化藝術兩個大類的首頁

start_urls = ['http://www.nipic.com/design/acg/index.html', 'http://www.nipic.com/design/wenyi/index.html']

def parse(self, response):

img_src = response.xpath('//ul[@class="search-result-box clearfix"]/li/a/span/img/@src').extract()

# 提取同一個個頁面所有下載圖片鏈接到一個列表

yield {'image_urls': [img_url for img_url in img_src]}

4. 運行結果

Scrapy網絡爬蟲:暱圖網圖片下載與縮略圖生成(附代碼)

原圖

Scrapy網絡爬蟲:暱圖網圖片下載與縮略圖生成(附代碼)

大縮略圖

Scrapy網絡爬蟲:暱圖網圖片下載與縮略圖生成(附代碼)

小縮略圖


分享到:


相關文章: