def registers(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 Session = get_Session(VPN) if Session == -1: self.failed_count = self.failed_count + 1 continue # 获取邮箱 email_and_passwd = get_email(present_website) if email_and_passwd == -1: self.failed_count = self.failed_count + 1 continue retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(Session, present_website, email_and_passwd) if registerData == -1: g_var.logger.info("代理错误") self.proxy_err_count = self.proxy_err_count + 1 proxies = ip_proxy(VPN) if proxies == {"error": -1}: g_var.logger.info("获取代理错误") self.failed_count = self.failed_count + 1 Session.proxies = proxies elif registerData == -2: g_var.logger.info("注册失败,可能是邮箱密码不符合要求、或ip被封等原因,请排查!") self.proxy_err_count = self.proxy_err_count + 1 proxies = ip_proxy(VPN) if proxies == {"error": -1}: g_var.logger.info("获取代理错误") self.failed_count = self.failed_count + 1 Session.proxies = proxies elif registerData == 0: # 注册成功,但激活失败 g_var.logger.info("注册成功,但激活失败!") break else: # 注册成功 self.success_count = self.success_count + 1 self.failed_count = 0 self.proxy_err_count = 0 break time.sleep(g_var.SLEEP_TIME) if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = "连续注册出错,程序停止" g_var.logger.error("连续注册失败!程序停止") break g_var.logger.info("g_var.SPIDER_STATUS" + str(g_var.SPIDER_STATUS)) g_var.logger.info("本线程共成功注册'self.success_count'=" + str(self.success_count) + "个账户")
def registers(self, present_website: str, VPN: str): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 Session = get_Session(VPN) if Session == -1: self.failed_count = self.failed_count + 1 continue email_and_passwd = get_email(present_website) if email_and_passwd == -1: self.failed_count = self.failed_count + 1 continue retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(Session, present_website, email_and_passwd) if registerData == 0: g_var.logger.info("注册失败,报错原因需要更换邮箱,跳出本循环") self.failed_count = self.failed_count + 1 break elif registerData == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理连续错误") retry_count = g_var.RETRY_COUNT_MAX elif registerData == -2: g_var.logger.info("注册失败,可能是邮箱密码不符合要求等原因,邮箱可以继续使用,不跳出循环") self.failed_count = self.failed_count + 1 continue else: # 注册成功 self.success_count = self.success_count + 1 self.failed_count = 0 break time.sleep(g_var.SLEEP_TIME) if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("连续注册失败!程序停止") break g_var.logger.info("g_var.SPIDER_STATUS" + str(g_var.SPIDER_STATUS)) g_var.logger.info("本线程共成功注册'self.success_count'=" + str(self.success_count) + "个账户")
def registers(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 # 获取邮箱 email_info = get_email(present_website) if email_info == -1: self.failed_count = self.failed_count + 1 continue googlekey = get_googlekey() if googlekey == -1: g_var.ERR_CODE = 2001 g_var.ERR_MSG = g_var.ERR_MSG + "无法获取googleKey值..." g_var.logger.info("获取googlekey值失败...") continue retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(present_website, email_info, googlekey) if registerData == -1: g_var.ERR_CODE = 3003 g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif registerData == -2: g_var.logger.info("注册失败,请排查!") continue elif registerData == 0: # 注册成功,但存库失败 g_var.logger.info("注册成功,但存库失败!") break else: # 注册成功 self.success_count = self.success_count + 1 self.failed_count = 0 break time.sleep(g_var.SLEEP_TIME) if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("连续注册失败!程序停止") break g_var.logger.info("g_var.SPIDER_STATUS" + str(g_var.SPIDER_STATUS)) g_var.logger.info("本线程共成功注册'self.success_count'=" + str(self.success_count) + "个账户")
def start(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 email_info = get_email(present_website) g_var.logger.info(email_info) if email_info == -1: self.failed_count = self.failed_count + 1 continue # 1、注册 retry_count = 0 register_signal = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(present_website, email_info) if registerData == -1: # 失败更换代理 g_var.ERR_CODE = 3003 g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif registerData == -2: # 注册过程中出现失败! g_var.logger.info("注册过程中出现失败!") continue elif registerData == -3: # 注册成功,但邮箱失败! g_var.logger.info("注册成功,但邮箱失败!") register_signal = 1 break elif registerData == 0: # 注册成功,但存库失败 g_var.logger.info("注册成功,但存库失败!") register_signal = 1 break else: # 说明注册成功 self.failed_count = 0 break self.failed_count += 1 if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("register:连续注册失败!程序停止") break if register_signal == 1: continue # 2、发链接 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 status = self.__postMessage(registerData) if status == -1: g_var.ERR_CODE = 3003 g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif status == 0: # 链接数据存库失败 sself.failed_count = self.failed_count + 1 continue else: # 发链接成功 self.success_count += 1 self.failed_count = 0 break if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续发链接出错,程序停止" g_var.logger.error("连续发链接出错,程序停止") break g_var.logger.info("成功注册账户并发送链接" + str(self.success_count) + "个。")
def start(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 # 设置Session对象 Session = get_Session(VPN) if Session == -1: self.failed_count = self.failed_count + 1 continue # 1、注册 email_and_passwd = get_email(present_website) if email_and_passwd == -1: self.failed_count = self.failed_count + 1 continue retry_count = 0 register_signal = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(Session, present_website, email_and_passwd) if registerData == 0: g_var.logger.info("注册失败,报错原因需要更换邮箱,跳出本循环") self.failed_count = self.failed_count + 1 register_signal = 1 break elif registerData == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif registerData == -2: g_var.logger.info("注册失败,可能是邮箱密码不符合要求等原因,邮箱可以继续使用,不跳出循环") self.failed_count = self.failed_count + 1 continue else: # 注册成功 self.failed_count = 0 break time.sleep(g_var.SLEEP_TIME) if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("连续注册失败!程序停止") break if register_signal == 1: continue # 2、登录 Session = get_Session(VPN) if Session == -1: self.failed_count = self.failed_count + 1 continue # 构造一个userInfo userInfo: tuple = (registerData['id'], registerData['username'], registerData['password'], registerData['email'], '0', registerData['cookie']) login_signal = 0 # 记录状态,成功为0,失败为1 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 loginData = self.login(Session, present_website, VPN, userInfo) if loginData == 1: # 返回1表示登录失败,将数据库中的status改为异常 g_var.logger.info('使用当前账号密码登录失败。。。') sql = "UPDATE" + present_website + "SET status=1 WHERE id=" + str( userInfo[0]) + ";" status = MysqlHandler().update(sql) if status == -1: return -1 self.failed_count = self.failed_count + 1 login_signal = 1 break elif loginData == 0: self.failed_count = self.failed_count + 1 login_signal = 1 break elif loginData == -1: # 代理问题,更换代理 g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif loginData == -2: g_var.logger.info("登录失败,但可以使用此账户继续尝试,不跳出循环") self.failed_count = self.failed_count + 1 continue else: self.failed_count = 0 break if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续登录出错,程序停止" g_var.logger.error("连续登录失败!程序停止") break if login_signal == 1: continue # 3、发文章 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: time.sleep(g_var.SLEEP_TIME) retry_count = retry_count + 1 status = self.__postMessage(Session, loginData, present_website) if status == 'ok': # 发文章成功 self.success_count = self.success_count + 1 self.failed_count = 0 break elif status == 1: sql = "UPDATE " + present_website + " SET cookie='' WHERE id=" + str( loginData['id']) + ";" status = MysqlHandler().update(sql) if status == 0: g_var.logger.info("cookie失效,清除cookie update OK") else: g_var.logger.error("数据库清除cookie错误!") self.failed_count = self.failed_count + 1 break elif status == 0: self.failed_count = self.failed_count + 1 break elif status == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif status == -2: self.failed_count = self.failed_count + 1 continue if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续发文章出错,程序停止" g_var.logger.error("连续发文章出错,程序停止") break g_var.logger.info("成功注册账户并发送文章" + str(self.success_count) + "篇")
def start(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 # 设置Session对象 Session = get_Session(VPN) if Session == -1: self.failed_count = self.failed_count + 1 continue # 1、注册 # 获取邮箱 retry_count = 0 email_and_passwd = get_email(present_website) if email_and_passwd == -1: retry_count = g_var.RETRY_COUNT_MAX g_var.ERR_MSG = g_var.ERR_MSG + "|_|没有邮箱了" g_var.logger.error("没有邮箱了") continue while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(Session, present_website, email_and_passwd) if registerData == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif registerData == -2: g_var.logger.info("注册失败,可能是邮箱密码不符合要求、或ip被封等原因,请排查!") self.proxy_err_count = self.proxy_err_count + 1 proxies = ip_proxy(VPN) if proxies == {"error": -1}: g_var.logger.info("获取代理错误") self.failed_count = self.failed_count + 1 Session.proxies = proxies elif registerData == 0: # 注册成功,但激活失败 email_and_passwd = get_email(present_website) if email_and_passwd == -1: retry_count = g_var.RETRY_COUNT_MAX g_var.ERR_MSG = g_var.ERR_MSG + "|_|没有邮箱了" g_var.logger.error("没有邮箱了") continue retry_count = 0 else: # 注册成功 self.failed_count = 0 break if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("start:连续注册失败!程序停止") break # 2、登录 Session = get_Session(VPN) if Session == -1: self.failed_count = self.failed_count + 1 continue # 构造一个userInfo g_var.logger.info(registerData) userInfo = [ int(registerData['id']), registerData['username'], registerData['password'], registerData['email'], 0, str(registerData['cookie']) ] login_signal = 0 # 记录状态,成功为0,失败为1 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 loginData = self.login(Session, present_website, VPN, userInfo) if loginData == -1: # 代理问题,更换代理 g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif loginData == -2: # 账号异常,跳出本循环 self.failed_count = self.failed_count + 1 login_signal = 1 break else: self.failed_count = 0 self.proxy_err_count = 0 break if retry_count == g_var.RETRY_COUNT_MAX: g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续登录出错,程序停止" g_var.logger.error("start:连续登录失败!程序停止") break if login_signal == 1: continue # 3、发文章 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 status = self.__postMessage(Session, loginData, present_website) if status == 0: # 发文章成功 self.success_count = self.success_count + 1 self.failed_count = 0 self.proxy_err_count = 0 break elif status == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif status == -2: # 某些必须停止的错误,程序停止 self.failed_count = self.failed_count + 1 g_var.SPIDER_STATUS = 3 break elif status == -3: self.failed_count = self.failed_count + 1 elif status == -4: sql = "UPDATE %s SET cookie=null WHERE id=%s ;" % ( present_website, loginData["id"]) g_var.logger.info(sql) status = MysqlHandler().update(sql) if status != 0: g_var.logger.error("数据库清除cookie错误!") return {"error": 1} break if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续发文章出错,程序停止" g_var.logger.error("连续发文章出错,程序停止") break g_var.logger.info("成功注册账户并发送文章" + str(self.success_count) + "篇")
def start(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 # 获取邮箱 email_info = get_email(present_website) if email_info == -1: self.failed_count = self.failed_count + 1 continue googlekey = get_googlekey() if googlekey == -1: g_var.ERR_CODE = 2001 g_var.ERR_MSG = g_var.ERR_MSG + "无法获取googleKey值..." g_var.logger.info("获取googlekey值失败...") continue retry_count = 0 register_signal = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 registerData = self.__register_one(present_website, email_info, googlekey) if registerData == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif registerData == -2: g_var.logger.info("注册失败,请排查!") continue elif registerData == 0: # 注册成功,但存库失败 g_var.logger.info("注册成功,但存库失败!") register_signal = 1 break else: # 注册成功 self.failed_count = 0 break time.sleep(g_var.SLEEP_TIME) if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("连续注册失败!程序停止") register_signal = 1 break if register_signal == 1: continue # 2、发文章 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: time.sleep(g_var.SLEEP_TIME) retry_count = retry_count + 1 status = self.__postMessage(registerData, present_website, googlekey) if status == 0: # 发文章成功 self.success_count = self.success_count + 1 self.failed_count = 0 break elif status == -1: # 返回值为-1,更换代理 g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif status == -2: # 返回值为-1,某些必须停止的错误,程序停止 self.failed_count = self.failed_count + 1 g_var.SPIDER_STATUS = 3 break elif status == -3: # 返回值为-1,数据库错误 self.failed_count = self.failed_count + 1 continue elif status == -4: # cookie失效,结束此次发送 self.failed_count = self.failed_count + 1 break if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("连续发文章出错,程序停止") break g_var.logger.info("成功注册账户并发送文章" + str(self.success_count) + "篇。")
def start(self, present_website, VPN): while self.success_count < self.assignment_num: # 每次循环检测当前错误状态 if self.__monitor_status() == -1: break self.now_count = self.now_count + 1 # 1、注册 email_and_passwd = get_email(present_website) if email_and_passwd == -1: self.failed_count = self.failed_count + 1 continue retry_count = 0 register_signal = 0 while retry_count < g_var.RETRY_COUNT_MAX: retry_count = retry_count + 1 userData = self.__register_one(present_website, email_and_passwd) if userData == 0: g_var.logger.info("注册失败,报错原因需要更换邮箱,跳出本循环") self.failed_count += 1 register_signal = 1 break elif userData == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif userData == -2: g_var.logger.info("注册失败,可能是密码不符合要求等原因,邮箱可以继续使用,不跳出循环") self.failed_count += 1 continue else: # 注册成功 self.failed_count = 0 break time.sleep(g_var.SLEEP_TIME) if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续注册出错,程序停止" g_var.logger.error("连续注册失败!程序停止") break if register_signal == 1: continue # 2、发文章 retry_count = 0 while retry_count < g_var.RETRY_COUNT_MAX: time.sleep(g_var.SLEEP_TIME) retry_count = retry_count + 1 status = self.__postMessage(userData, present_website) if status == 'ok': # 发文章成功 self.success_count = self.success_count + 1 self.failed_count = 0 break elif status == 1: sql = "UPDATE " + present_website + " SET cookie='' WHERE id=" + str( loginData['id']) + ";" status = MysqlHandler().update(sql) if status == 0: g_var.logger.info("cookie失效,清除cookie update OK") else: g_var.logger.error("数据库清除cookie错误!") self.failed_count += 1 break elif status == 0: self.failed_count += 1 break elif status == -1: g_var.ERR_MSG = g_var.ERR_MSG + "|_|代理连续错误" g_var.logger.info("代理错误") retry_count = g_var.RETRY_COUNT_MAX elif status == -2: self.failed_count += 1 continue if retry_count == g_var.RETRY_COUNT_MAX: # 连续出错说明发生了一些问题,需要停止程序 g_var.SPIDER_STATUS = 3 g_var.ERR_MSG = g_var.ERR_MSG + "|_|连续发文章出错,程序停止" g_var.logger.error("连续发文章出错,程序停止") break g_var.logger.info("成功注册账户并发送文章" + str(self.success_count) + "篇")