項目要求
爬取動漫動畫和文化藝術兩個大類的首頁的圖片(演示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. 運行結果
閱讀更多 初沏的茶 的文章