scrapy下载图片

澳门新葡亰网站注册 1

ecms7.0的sys_ResizeImg这个函数

首先看一下爬取的流程:

函数语法:sys_ResizeImg(原图片,缩图宽度,缩图高度,是否裁翦图片,目标文件名)

在一个爬虫里,你抓取一个项目,把其中图片的 URL
放入“image_urls”组内。项目从爬虫内返回,进入项目管道。

下面是在列表页使用方法

当项目进入ImagesPipeline,image_urls组内的 URLS 将被 Scrapy
的调度器和下载器(这意味着调度器和下载器的中间件可以复用)安排下载,当优先级更高,会在其他页面被抓取前处理。项目会在这个特定的管道阶段保持“locker”的状态,直到完成图片的下载(或者由于某些原因未完成下载)。

在右侧把使用程序代码打勾! 如下图:

当图片下载完,另一个组(images)将被更新到结构中。这个组将包含一个字典列表,其中包括下载图片的信息,比如下载路径、源抓取地址(从image_urls组获得)和图片的校验码。images列表中的图片顺序将和源image_urls组保持一致。如果某个图片下载失败,将会记录下错误信息,图片也不会出现在images组中。

例如你原先的列表页循环内容代码为:

澳门新葡亰网站注册 1

liimg src=[!—titlepic–]a
href=[!—-titleurl–][!—-title–]/a/li

下载图片的item

现在则要在下面框子里输入

为了开启你的图片管道,你首先需要在setting中添加它ITEM_澳门新葡亰网站注册,PIPELINES
setting:

if($r[titlepic]){$tpic=sys_ResizeImg($r[titlepic],120,80,1,);}else{$tpic=e/data/images/notimg.gif;}$listtemp=liimgsrc=.$tpic.ahref=[!----titleurl--][!----title--]/a/li;

ITEM_PIPELINES = {‘scrapy.contrib.pipeline.images.ImagesPipeline’:
1}

其中120,80 就是你像生成的缩略图宽度 高度 !
自己就可以在不同列表页生成不同大小的缩略图了!

并将IMAGES_STORE设置为一个有效的文件夹,用来存储下载的图片。否则管道将保持禁用状态,即使你在ITEM_PIPELINES设置中添加了它。比如:

IMAGES_STORE=’d:/meizitu’