|
|
|
|
@ -13,6 +13,9 @@ from com.github.catvod import Proxy |
|
|
|
|
class Spider(metaclass=ABCMeta): |
|
|
|
|
_instance = None |
|
|
|
|
|
|
|
|
|
def __init__(self): |
|
|
|
|
self.extend = '' |
|
|
|
|
|
|
|
|
|
def __new__(cls, *args, **kwargs): |
|
|
|
|
if cls._instance: |
|
|
|
|
return cls._instance |
|
|
|
|
@ -24,26 +27,21 @@ class Spider(metaclass=ABCMeta): |
|
|
|
|
def init(self, extend=""): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
def homeContent(self, filter): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
def homeVideoContent(self): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
def categoryContent(self, tid, pg, filter, extend): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
def detailContent(self, ids): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
def searchContent(self, key, quick, pg="1"): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
def playerContent(self, flag, id, vipFlags): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
@ -104,9 +102,21 @@ class Spider(metaclass=ABCMeta): |
|
|
|
|
def html(self, content): |
|
|
|
|
return etree.HTML(content) |
|
|
|
|
|
|
|
|
|
def str2json(str): |
|
|
|
|
return json.loads(str) |
|
|
|
|
|
|
|
|
|
def json2str(str): |
|
|
|
|
return json.dumps(str, ensure_ascii=False) |
|
|
|
|
|
|
|
|
|
def getProxyUrl(self, local=True): |
|
|
|
|
return f'{Proxy.getUrl(local)}?do=py' |
|
|
|
|
|
|
|
|
|
def log(self, msg): |
|
|
|
|
if isinstance(msg, dict) or isinstance(msg, list): |
|
|
|
|
print(json.dumps(msg, ensure_ascii=False)) |
|
|
|
|
else: |
|
|
|
|
print(f'{msg}') |
|
|
|
|
|
|
|
|
|
def getCache(self, key): |
|
|
|
|
value = self.fetch(f'http://127.0.0.1:{Proxy.getPort()}/cache?do=get&key={key}', timeout=5).text |
|
|
|
|
if len(value) > 0: |
|
|
|
|
|