我想出了一个动态交互式模拟建筑的想法。这意味着我要注册一个对象:
session = requests.Session()
mock_building.start(session)
然后当我调用时:
session.get("http://stackoverflow.com")
它会像往常一样向stackoverflow发出请求并保存Response(某处)。
然后我会做出类似的事情:
mock_building.save(session, "stackoverflow_session.dat") # pickling?
稍后(在下一次执行中)我会这样做:
session = mock_building.load("stackoverflow_session.dat")
这一次:
session.get("http://stackoverflow.com") # overloaded __getattr__?
会给我完全相同的响应,但没有请求stackoverflow。
这件事有可能吗?请注意我不想将自己限制在请求模块中,在一般情况下我非常适合开发/测试(例如,当程序在第300行引发异常并且需要花费大量时间时)。或者不是吗?
答案 0 :(得分:1)
您可以将所有请求缓存到例如sqlite db
import requests
import requests_cache
requests_cache.install_cache()
requests.get('http://stackoverflow.com')