美文网首页精通scrapy网络爬虫
四. Scrapy下载文件和图片

四. Scrapy下载文件和图片

作者: 橄榄的世界 | 来源:发表于2018-03-07 09:35 被阅读0次

1.FilesPipeline 下载文件
2.ImagesPipeline 下载图片

这两个Item Pipeline可以看作特殊的下载器,使用时只需将链接传递给特定的字段(file_urls,image_urls),即可处理下载任务。

目录 FilesPipeline ImagesPipeline
导入路径 scrapy.pipelines.files.FilesPipeline scrapy.pipelines.files.ImagesPipeline
Item字段 file_urls(链接地址), files (结果) image_urls(链接地址), images (结果)
下载目录 FILES_STORE IMAGES_STORE
  • 文件下载例子:
    ① 在settings.py中启用FilesPipeline,通常排在其他Item Pipeline前面;
    ITEM_PIPELINES = {'scrapy.pipelines.files.FilesPipeline': 1,}
    ②在settings.py中设置下载地址;
    FILES_STORE = '/filedownloads'
    ③将解析后的链接传入file_urls字段。
def parse(self,response):
    ...
    item = BooksItem()
    item['file_urls'] = [download_urls]      #以列表形式传给file_urls
    #item['file_urls'].append(download_url)  #单个链接添加到列表中  

  • 图片下载例子:
    与上述例子差不多,只不过是传给‘image_urls’字段。同时针对图片提供了一些特有功能。
    a. 为图片生成缩略图:开启次功能,只需在settings.py中进行设置IMAGES_THUMBS。它是一个字典,上面可设置缩略图的尺寸,这样子的话,下载一张图片,本地会出现3张图(1张原图片,2张缩略图):
IMAGES_THUMBS = {
    'small':(50,50),
    'big':(270,270),
}

b. 过滤掉尺寸过小的照片:在settings.py中设置IMAGES_MIN_WIDTH和IMAGES_MIN_HEIGHT:

IMAGES_MIN_WIDTH = 110
IMAGES_MIN_HEIGHT = 110

相关文章

网友评论

    本文标题:四. Scrapy下载文件和图片

    本文链接:https://www.haomeiwen.com/subject/nzxhfftx.html