From f0bf9dc6af24dec79c4420d285c70952a2fff291 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 18 Jul 2024 12:26:52 +0800 Subject: [PATCH] Update spider.py --- chaquo/src/main/python/base/spider.py | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/chaquo/src/main/python/base/spider.py b/chaquo/src/main/python/base/spider.py index 9c69d5010..6e2dce505 100644 --- a/chaquo/src/main/python/base/spider.py +++ b/chaquo/src/main/python/base/spider.py @@ -99,3 +99,31 @@ class Spider(metaclass=ABCMeta): def html(self, content): return etree.HTML(content) + + def getCache(self, key): + value = self.fetch(f'http://127.0.0.1:9978/cache?do=get&key={key}', timeout=5).text + if len(value) > 0: + if value.startswith('{') and value.endswith('}') or value.startswith('[') and value.endswith(']'): + value = json.loads(value) + if type(value) == dict: + if not 'expiresAt' in value or value['expiresAt'] >= int(time.time()): + return value + else: + self.delCache(key) + return None + return value + else: + return None + + def setCache(self, key, value): + if type(value) in [int, float]: + value = str(value) + if len(value) > 0: + if type(value) == dict or type(value) == list: + value = json.dumps(value, ensure_ascii=False) + r = self.post(f'http://127.0.0.1:9978/cache?do=set&key={key}', data={"value": value}, timeout=5) + return 'succeed' if r.status_code == 200 else 'failed' + + def delCache(self, key): + r = self.fetch(f'http://127.0.0.1:9978/cache?do=del&key={key}', timeout=5) + return 'succeed' if r.status_code == 200 else 'failed'