python 爬虫 缓存的应用 反爬机制

  • Post author:
  • Post category:python


首先需要安装requests-cache模块 pip install requests-cache

测试模块是否安装成功

import requests_cache
version = requests_cache.__version__
print('版本号为:'version)

输出结果:

版本号为:0.5.2

在使用Requests-Cache模块实现请求缓存时,只需要调用install_cache()函数即可,其语法如下:

requests_cache.install_cache(cache_name=‘cache’,backend=None,expire_after=None,allowable_codes=(200,),allowable_methods=(‘GET’,),session_factory=<class ‘requests_cache.core.CachedSession’>,**backend_options)

install_cache()函数中包含了多个参数,每个参数的含义如下:

cache_name:表示缓存文件的名称,默认为cache;

backend:表示设置缓存的存储机制,默认为None,表示默认使用sqlite进行存储;

expire_after:表示设置缓存的有效时间,默认为None,表示永久有效;

allowable_codes:表示设置状态码,默认为200;

allowable_codes:表示设置请求方式,默认为GET,表示只有GET请求才可以生成缓存。

session_factory:表示设置缓存执行的对象,需要现实CachedSession类;

**backend_options:如果缓存的存储方式为sqlite、mongo、redis数据库,该参数表示设置数据库的连接方式。

在使用install_cache()函数实现请求缓存时,一般情况不需要单独设置任何参数,只需要用默认参数即可。判断是否存在缓存的代码如下:

import requests_cache
import requests
requests_cache.install_cache()#设置缓存
requests_cache.clear()#清理缓存
url = 'http://httpbin.org/get'#定义测试地址
r = requests.get(url)#第一次发送网络请求
print('是否存在缓存:',r.from_cache)#False表示不存在缓存
r = requests.get(url)#第二次发送网络请求
print('是否存在缓存:',r.from_cache)#True表示存在缓存

输出结果:

是否存在缓存: False

是否存在缓存: True



版权声明:本文为dai1987csdn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。