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

 找回密码
 立即注册

下载器中间件

发布者: 笨鸟自学网



虚拟策略(默认)

classscrapy.extensions.httpcache.DummyPolicy[源代码]

此策略不知道任何HTTP缓存控制指令。每个请求及其相应的响应都被缓存。当再次看到相同的请求时,将返回响应,而不从Internet传输任何内容。

虚拟策略对于更快地测试spider(而不必每次都等待下载)以及在无法连接到Internet时尝试离线使用spider非常有用。目标是能够“重播”蜘蛛的奔跑 和以前一样 .

RCF2616政策

classscrapy.extensions.httpcache.RFC2616Policy[源代码]

此策略提供了一个符合RFC2616的HTTP缓存,即具有HTTP缓存控制意识,旨在生产,并在连续运行中使用,以避免下载未修改的数据(以节省带宽和加快爬行速度)。

实施的内容:

  • 不要试图用存储响应/请求 no-store 缓存控制指令集

  • 如果 no-cache 甚至为新响应设置了缓存控制指令

  • 计算新鲜度寿命 max-age 缓存控制指令

  • 计算新鲜度寿命 Expires 响应报头

  • 计算新鲜度寿命 Last-Modified 响应头(firefox使用的启发式方法)

  • 计算当前年龄 Age 响应报头

  • 计算当前年龄 Date 页眉

  • 基于以下内容重新验证过时响应 Last-Modified 响应报头

  • 基于以下内容重新验证过时响应 ETag 响应报头

  • 集合 Date 接收到的任何响应的头丢失了它

  • 支持 max-stale 请求中的缓存控制指令

这允许spider使用完整的rfc2616缓存策略进行配置,但避免按请求进行重新验证,同时保持与HTTP规范一致。

例子:

添加 Cache-Control: max-stale=600 请求头接受超过其过期时间不超过600秒的响应。

另见:RFC2616,14.9.3

缺少什么:

  • Pragma: no-cache 支持https://www.w3.org/protocols/rfc2616/rfc2616-sec14.html sec14.9.1

  • Vary 头支持https://www.w3.org/protocols/rfc2616/rfc2616-sec13.html sec13.6

  • 更新或删除后无效https://www.w3.org/protocols/rfc2616/rfc2616-sec13.html sec13.10

  • …可能还有其他……

文件系统存储后端(默认)

classscrapy.extensions.httpcache.FilesystemCacheStorage[源代码]

文件系统存储后端可用于HTTP缓存中间件。

每个请求/响应对存储在包含以下文件的不同目录中:

  • request_body -普通请求主体

  • request_headers -请求头(原始HTTP格式)

  • response_body -普通反应体

  • response_headers -请求头(原始HTTP格式)

  • meta -python中这个缓存资源的一些元数据 repr() 格式(grep友好格式)

  • pickled_meta -中的相同元数据 meta 但是为了更有效的反序列化而进行的pickled

目录名是根据请求指纹生成的(请参见 scrapy.utils.request.fingerprint 一级子目录用于避免在同一目录中创建过多的文件(在许多文件系统中效率低下)。示例目录可以是:

/path/to/cache/dir/example.com/72/72811f648e718090f041317756c03adb0ada46c7

DBM存储后端

classscrapy.extensions.httpcache.DbmCacheStorage[源代码]

DBM 存储后端也可用于HTTP缓存中间件。

默认情况下,它使用 dbm ,但您可以用 HTTPCACHE_DBM_MODULE 设置。


上一篇:体系结构概述下一篇:蜘蛛中间件

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

GMT+8, 2024-11-23 17:30 , Processed in 0.018593 second(s), 17 queries .

© 2001-2020

返回顶部