笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

下载和处理文件和图像

发布者: 笨鸟自学网



使用实例

为了使用媒体管道,首先 enable it .

那么,如果蜘蛛返回一个 item object 使用URL字段 (file_urls 或 image_urls ,对于文件或图像管道),管道会将结果放在相应的字段下 (files 或 images )

在使用时 item types 对于预先定义的字段,必须同时定义URL字段和结果字段。例如,在使用图像管道时,项必须同时定义 image_urls 以及 images 田野。例如,使用 Item 班级::

import scrapy

class MyItem(scrapy.Item):
    # ... other item fields ...
    image_urls = scrapy.Field()
    images = scrapy.Field()

如果要对URL键或结果键使用其他字段名,也可以重写它。

对于文件管道,设置 FILES_URLS_FIELD 和/或 FILES_RESULT_FIELD 设置::

FILES_URLS_FIELD = 'field_name_for_your_files_urls'
FILES_RESULT_FIELD = 'field_name_for_your_processed_files'

对于图像管道,设置 IMAGES_URLS_FIELD 和/或 IMAGES_RESULT_FIELD 设置::

IMAGES_URLS_FIELD = 'field_name_for_your_images_urls'
IMAGES_RESULT_FIELD = 'field_name_for_your_processed_images'

如果您需要更复杂的内容,并且想要覆盖自定义管道行为,请参见 扩展媒体管道 .

如果有多个图像管道继承自ImagePipeline,并且希望在不同的管道中具有不同的设置,则可以设置以管道类的大写名称开头的设置键。例如,如果您的管道名为mypipeline,并且您希望有自定义图像URL字段,那么您可以定义设置mypipeline图像URL字段,并且将使用自定义设置。

其他功能

文件过期

图像管道避免下载最近下载的文件。要调整此保留延迟,请使用 FILES_EXPIRES 设置(或) IMAGES_EXPIRES ,对于图像管道),指定延迟天数:

# 120 days of delay for files expiration
FILES_EXPIRES = 120

# 30 days of delay for images expiration
IMAGES_EXPIRES = 30

两种设置的默认值都是90天。

如果您有子类filespine的管道,并且希望对其进行不同的设置,则可以设置以大写类名开头的设置键。例如,给定名为MyPipeline的管道类,您可以设置设置键:

mypipeline_files_expires=180

管道类MyPipeline的过期时间设置为180。

文件的上次修改时间用于确定文件的使用期限(以天为单位),然后将其与设置的过期时间进行比较,以确定文件是否已过期。

图像的缩略图生成

图像管道可以自动创建下载图像的缩略图。

要使用此功能,必须设置 IMAGES_THUMBS 到一个字典,其中键是缩略图名称,值是它们的尺寸。

例如::

IMAGES_THUMBS = {
    'small': (50, 50),
    'big': (270, 270),
}

使用此功能时,图像管道将使用以下格式创建每个指定大小的缩略图:

<IMAGES_STORE>/thumbs/<size_name>/<image_id>.jpg

在哪里?

  • <size_name> 是在 IMAGES_THUMBS 字典键 (small , big 等)

  • <image_id> 是不是 SHA-1 hash 图像url的

存储图像文件的示例 small 和 big 缩略图名称:

<IMAGES_STORE>/full/63bbfea82b8880ed33cdb762aa11fab722a90a24.jpg
<IMAGES_STORE>/thumbs/small/63bbfea82b8880ed33cdb762aa11fab722a90a24.jpg
<IMAGES_STORE>/thumbs/big/63bbfea82b8880ed33cdb762aa11fab722a90a24.jpg

第一个是从网站下载的完整图像。


上一篇:调试内存泄漏下一篇:部署蜘蛛

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 13:00 , Processed in 0.269074 second(s), 29 queries .

© 2001-2020

返回顶部