# scrapy爬取图片 ​ 本文以爬取[SCRAPY爬虫实验室](http://lab.scrapyd.cn/page/1/)为例,爬取[这个页面](http://lab.scrapyd.cn/archives/55.html)的图片 ## 1.创建项目 ​ 打开**命令提示符**或者**PowerShell**输入以下命令:`scrapy startproject ImageSpider`创建项目目录,然后依次执行`cd ImageSpider`和`scrapy genspider ImgSpider`生成**ImgSpider**爬虫。 ## 2.定义item ​ 在item.py中创建图片链接的item,文件全部内容如下: ```python import scrapy class ImagespiderItem(scrapy.Item): imgurl=scrapy.Field() pass ``` ## 3.编辑蜘蛛文件 ​ 编辑**ImageSpider\ImageSpider\spiders\ImgSpider.py** 代码如下: ```python import scrapy from ImageSpider.items import ImagespiderItem class ImgspiderSpider(scrapy.Spider): name = 'ImgSpider' #蜘蛛名 allowed_domains = ['lab.scrapyd.cn'] start_urls = ['http://lab.scrapyd.cn/archives/55.html'] #蜘蛛起始链接 def parse(self, response): item=ImagespiderItem() imgurls=response.css(".post img::attr(src)").extract() #获取图片链接 item['imgurl']=imgurls yield item pass ``` ## 4.编辑图片下载中间件pipline: ​ 打开**pipline.py**代码如下: ```python from scrapy.contrib.pipeline.images import ImagesPipeline import scrapy class ImagespiderPipeline(ImagesPipeline): def get_media_requests(self, item, info): for image_url in item['imgurl']: yield scrapy.Request(image_url) ``` ## 5.开启图片通道: ​ 在**setting.py**文件里打开图片通道,并设置图片存放目录: ```python IMAGES_STORE='D:\image' #图片储存目录 ITEM_PIPELINES = { #打开图片通道 'ImageSpider.pipelines.ImagespiderPipeline': 300, } ``` ## 6.启动爬虫 ​ 进入**ImageSpider**目录,命令行运行: ```python scrapy crawl ImgSpider ```