实战Python网络爬虫
上QQ阅读APP看书,第一时间看更新

7.4 本章小结

Requests-Cache是Requests模块的一个扩展功能,它是根据Requests的发送请求来生成相应的缓存数据,其作用非常重要,可以减少网络资源重复请求的次数,不仅减轻了本地的网络负载,而且还可以减少爬虫对网站服务器的请求次数,这也是解决反爬虫机制的一个重要手段。

整个缓存机制由install_cache()方法实现,该方法的参数说明如下。

● cache_name:默认值为cache,这是对缓存的存储文件进行命名。

● backend:设置缓存的存储机制,默认值为None,即默认sqlite数据库存储。

● expire_after:设置缓存的有效时间,默认值None,即为永久有效。

● allowable_codes:设置HTTP的状态码,默认值为200。

● allowable_methods:设置请求方式,默认值是只允许GET请求才能生成缓存。

● session_factory:设置缓存的执行对象,由CachedSession类实现,该类是由Requests-Cache定义。

● **backend_options:设置存储配置,若缓存的存储选择sqlite、redis或mongoDB数据库,则该参数是设置数据库的连接方式。

Requests-Cache支持4种不同的存储机制:memory、sqlite、redis和mongoDB,4种存储机制说明如下。

● memory:每次程序运行都会将缓存以字典的形式保存在内存中,程序运行完毕,缓存也随之销毁。

● sqlite:将缓存存储在sqlite数据库,这是Requests-Cache默认的存储机制。

● redis:将缓存存储在redis数据库,通过redis模块实现数据库的读写。

● mongoDB:将缓存存储在mongoDB数据库,通过pymongo模块实现数据库的读写。