def init_config(recipe_kind): if recipe_kind == 'zhihu': # TODO: 再有一个需要登录的网站, 改掉硬编码 login = Login(recipe_kind='zhihu') else: return # !!!!!发布的时候把Config.remember_account改成false!!!!!,第一次需要登录,之后用cookie即可 # 登陆成功了,自动记录账户 if Config.remember_account_set: Debug.logger.info(u'检测到有设置文件,直接使用之前的设置') # if raw_input(): # login.start() # Config.picture_quality = guide.set_picture_quality() Config.picture_quality = 1 # else: try: Http.set_cookie() # sinablog, jianshu: DontNeed except TypeError: print u"没有找到登录成功的cookie记录, 请重新登录" login.start() else: log.warning_log(u"Please login...") login.start() # Config.picture_quality = guide.set_picture_quality() Config.picture_quality = 1 Config.remember_account_set = True # save config Config._save() return
def login(self, account, password, captcha=''): content = Http.get_content('https://www.zhihu.com/') xsrf = Match.xsrf(content) if not xsrf: Debug.logger.info(u'登陆失败') Debug.logger.info(u'敲击回车重新发送登陆请求') return False xsrf = xsrf.split('=')[1] # add xsrf as cookie into cookieJar, cookie = Http.make_cookie(name='_xsrf', value=xsrf, domain='www.zhihu.com') self.cookieJar.set_cookie(cookie) if captcha: post_data = {'_xsrf': xsrf, 'email': account, 'password': password, 'remember_me': True, 'captcha': captcha} else: post_data = {'_xsrf': xsrf, 'email': account, 'password': password, 'remember_me': True} header = { 'Accept': '*/*', 'Accept-Encoding': 'gzip,deflate', # 主要属性,只要有此项知乎即认为来源非脚本 'Accept-Language': 'zh,zh-CN;q=0.8,en-GB;q=0.6,en;q=0.4', 'Host': 'www.zhihu.com', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36(KHTML, like Gecko)Chrome/34.0.1847.116 Safari/537.36', 'Connection': 'keep-alive', 'X-Requested-With': 'XMLHttpRequest', 'Origin': 'https://www.zhihu.com', 'Referer': 'https://www.zhihu.com/', } result = Http.get_content(url=r'https://www.zhihu.com/login/email', data=post_data, extra_header=header) if not result: Debug.logger.info(u'登陆失败,请敲击回车重新登陆') return False response = json.loads(result) if response['r'] == 0: print u'登陆成功!' print u'登陆账号:', account print u'请问是否需要记住帐号密码?输入yes记住,输入其它任意字符跳过,回车确认' if raw_input() == 'yes': Config.account, Config.password, Config.remember_account = account, password, True print u'帐号密码已保存,可通过修改config.json修改设置' else: Config.account, Config.password, Config.remember_account = '', '', False print u'跳过保存环节,进入下一流程' Config._save() cookie = self.get_cookie() DB.execute('delete from LoginRecord') # 登陆成功后清除数据库中原有的登录记录,避免下次登陆时取到旧记录 data = {} data['account'] = account data['password'] = password data['recordDate'] = ExtraTools.get_today() data['cookieStr'] = cookie DB.save(data, 'LoginRecord') DB.commit() return True else: print u'登陆失败' Debug.print_dict(response) return False
def login_button_clicked(self): account = str(self.username.text()) password = str(self.password.text()) captcha = str(self.captcha.text()) if not self.login.login(account=account, password=password, captcha=captcha): click_ok = QtGui.QMessageBox.information(self, u"登陆失败", u"啊哦,登录失败,可能需要输入验证码\n请尝试输入验证码") if click_ok: self.login.get_captcha(from_ui=True) return Config.remember_account_set = True Config._save() QtGui.QMessageBox.information(self, u"登陆成功", u"恭喜, 登陆成功, 登陆信息已经保存") self.username.setText('') self.password.setText('') self.captcha.setText('')
def init_config(): login = Login() if Config.remember_account: print u"检测到有设置文件,是否直接使用之前的设置?(帐号、密码、图片质量)" print u"点按回车使用之前设置,敲入任意字符后点按回车进行重新设置" if raw_input(): login.start() Config.picture_quality = guide.set_picture_quality() else: Http.set_cookie() else: login.start() Config.picture_quality = guide.set_picture_quality() # 储存设置 Config._save() return
def init_config(): login = Login() if Config.remember_account: print u'检测到有设置文件,是否直接使用之前的设置?(帐号、密码、图片质量)' print u'点按回车使用之前设置,敲入任意字符后点按回车进行重新设置' if raw_input(): login.start() Config.picture_quality = guide.set_picture_quality() else: Http.set_cookie() else: login.start() Config.picture_quality = guide.set_picture_quality() # 储存设置 Config._save() return
def login_button_clicked(self): account = str(self.username.text()) password = str(self.password.text()) captcha = str(self.captcha.text()) if not self.login.login( account=account, password=password, captcha=captcha): click_ok = QtGui.QMessageBox.information( self, u"登陆失败", u"啊哦,登录失败,可能需要输入验证码\n请尝试输入验证码") if click_ok: self.login.get_captcha(from_ui=True) return Config.remember_account_set = True Config._save() QtGui.QMessageBox.information(self, u"登陆成功", u"恭喜, 登陆成功, 登陆信息已经保存") self.username.setText('') self.password.setText('') self.captcha.setText('')
def init_config(): Config._save() return
def login(self, account, password, captcha=''): content = Http.get_content('https://www.zhihu.com/') xsrf = Match.xsrf(content) if not xsrf: Debug.logger.info(u'登陆失败') Debug.logger.info(u'敲击回车重新发送登陆请求') return False xsrf = xsrf.split('=')[1] # add xsrf as cookie into cookieJar, cookie = Http.make_cookie(name='_xsrf', value=xsrf, domain='www.zhihu.com') self.cookieJar.set_cookie(cookie) if captcha: post_data = { '_xsrf': xsrf, 'email': account, 'password': password, 'remember_me': True, 'captcha': captcha } else: post_data = { '_xsrf': xsrf, 'email': account, 'password': password, 'remember_me': True } header = { 'Accept': '*/*', 'Accept-Encoding': 'gzip,deflate', # 主要属性,只要有此项知乎即认为来源非脚本 'Accept-Language': 'zh,zh-CN;q=0.8,en-GB;q=0.6,en;q=0.4', 'Host': 'www.zhihu.com', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36(KHTML, like Gecko)Chrome/34.0.1847.116 Safari/537.36', 'Connection': 'keep-alive', 'X-Requested-With': 'XMLHttpRequest', 'Origin': 'https://www.zhihu.com', 'Referer': 'https://www.zhihu.com/', } result = Http.get_content(url=r'https://www.zhihu.com/login/email', data=post_data, extra_header=header) if not result: Debug.logger.info(u'登陆失败,请敲击回车重新登陆') return False response = json.loads(result) if response['r'] == 0: print u'登陆成功!' print u'登陆账号:', account print u'请问是否需要记住帐号密码?输入yes记住,输入其它任意字符跳过,回车确认' if raw_input() == 'yes': Config.account, Config.password, Config.remember_account = account, password, True print u'帐号密码已保存,可通过修改config.json修改设置' else: Config.account, Config.password, Config.remember_account = '', '', False print u'跳过保存环节,进入下一流程' Config._save() cookie = self.get_cookie() DB.execute( 'delete from LoginRecord') # 登陆成功后清除数据库中原有的登录记录,避免下次登陆时取到旧记录 data = {} data['account'] = account data['password'] = password data['recordDate'] = ExtraTools.get_today() data['cookieStr'] = cookie DB.save(data, 'LoginRecord') DB.commit() return True else: print u'登陆失败' Debug.print_dict(response) return False
def init_config(): # TODO 输出提示语之类的 Config._save() return
def init_config(): # TODO 输出提示语之类的 Config._save() return
def init_config(): Config._save() return