def login_by_qrcode(self): """ 二维码登陆 :return: """ self._get_login_page() # download QR code if not self._get_qrcode(): raise SKException('二维码下载失败') # get QR code ticket ticket = None retry_times = 85 for _ in range(retry_times): ticket = self._get_qrcode_ticket() if ticket: break time.sleep(2) else: raise SKException('二维码过期,请重新获取扫描') # validate QR code ticket if not self._validate_qrcode_ticket(ticket): raise SKException('二维码信息校验失败') self.refresh_login_status() logger.info('二维码登录成功')
def _get_seckill_init_info(self): """获取秒杀初始化信息(包括:地址,发票,token) :return: 初始化信息组成的dict """ logger.info('获取秒杀初始化信息...') url = 'https://marathon.jd.com/seckillnew/orderService/pc/init.action' data = { 'sku': self.sku_id, 'num': self.seckill_num, 'isModifyAddress': 'false', } headers = { 'User-Agent': self.user_agent, 'Host': self.marathon_url, } resp = self.session.post(url=url, data=data, headers=headers) resp_json = None try: resp_json = parse_json(resp.text) except Exception: raise SKException('抢购失败 _get_seckill_init_info ,返回信息:{}'.format( resp.text[0:128])) return resp_json
def login_by_qrcode(self): """ 二维码登陆 :return: """ resp = self._get_login_page() # download QR code if not self._get_qrcode(): raise SKException('二维码下载失败') # get QR code ticket retry_times = 85 for _ in range(retry_times): if self._get_qrcode_ticket(): break time.sleep(1) else: raise SKException('二维码过期,请重新获取扫描') self.refresh_login_status() logger.info('二维码登录成功')
def login_by_qrcode(self): """ :return: """ if self.qrlogin.is_login: logger.info('登录成功') return self.qrlogin.login_by_qrcode() if self.qrlogin.is_login: self.nick_name = self.get_username() self.spider_session.save_cookies_to_local(self.nick_name) else: raise SKException("登录失败!")