def is_signed(self): r = self.session.get(self.index_url) signed = False if r.ok: daka_pattern = r'dakaed:\s*(\w+)' days_pattern = r'dakaNumber:\s*(\d+)' try: signed = ('true' == util.find_value(daka_pattern, r.text)) sign_days = int(util.find_value(days_pattern, r.text)) self.logger.info('今日已打卡: {}; 打卡天数: {}'.format( signed, sign_days)) except Exception as e: self.logger.error('返回数据结构可能有变化, 获取打卡数据失败: {}'.format(e)) traceback.print_exc() if not signed: # no need to parse if already signed self.daka_act_type = self.get_daka_act_type(r.text) else: self.logger.error('打卡失败: Status code: {}; Reason: {}'.format( r.status_code, r.reason)) return signed
def __init__(self, parser, parent, json_node): def not_comments(n): return not n['kind'].endswith('Comment') self.value = find_value(json_node) self.is_primitive_value = self.value is not None if not self.value: self.value = parser.read_from_source(json_node['range']['end'])
def get_daka_act_type(self, html): # e.g: data:{'dakaActType':'JD_APP_V7'}, pattern = r"""dakaActType['"]:\s*['"](.*?)['"]""" daka_act_type = util.find_value(pattern, html) if not daka_act_type: self.logger.warning('dakaActType 参数未找到, 页面可能有变化, 打卡可能不成功.') return daka_act_type
def _get_token(self): html = self.session.get(self.index_url).text pattern = r'pageConfig.token="(\d+)"' token = util.find_value(pattern, html) if not token: raise Exception('token 未找到.') return token
def is_signed(self): r = self.session.get(self.index_url) signed = False if r.ok: sign_pattern = r'dakaed:\s*(\w+)' days_pattern = r'dakaNumber:\s*(\d+)' try: signed = ('true' == util.find_value(sign_pattern, r.text)) sign_days = int(util.find_value(days_pattern, r.text)) self.logger.info('今日已打卡: {}; 打卡天数: {}'.format( signed, sign_days)) except Exception as e: self.logger.error('返回数据结构可能有变化, 获取打卡数据失败: {}'.format(e)) traceback.print_exc() return signed
def is_signed(self): r = self.session.get(self.index_url) signed = False if r.ok: sign_pattern = r'"signStatval".*?value="(\d+)"' days_pattern = r'"signNum".*?value="(\d+)"' try: # https://h.360buyimg.com/getbean/js/jdBeanNew.js # 2 表示已签到, 4 表示未签到 signed = ('2' == util.find_value(sign_pattern, r.text)) sign_days = int(util.find_value(days_pattern, r.text)) self.logger.info('今日已签到: {}; 签到天数: {}'.format( signed, sign_days)) except Exception as e: self.logger.error('返回数据结构可能有变化, 获取签到数据失败: {}'.format(e)) traceback.print_exc() return signed