bobocup commited on
Commit
e3c9434
·
verified ·
1 Parent(s): 7d42879

Update nb4x.py

Browse files
Files changed (1) hide show
  1. nb4x.py +27 -3
nb4x.py CHANGED
@@ -24,6 +24,11 @@ logging.basicConfig(
24
  )
25
  logger = logging.getLogger(__name__)
26
 
 
 
 
 
 
27
  def get_verification_code(driver, email, max_retries=10, delay=2):
28
  email_url = f'https://linshiyou.com/#/{email}'
29
 
@@ -55,7 +60,7 @@ def get_verification_code(driver, email, max_retries=10, delay=2):
55
  return verification_code
56
 
57
  except Exception as e:
58
- logger.error(f"获取验证码时发生错误: {str(e)}")
59
 
60
  time.sleep(delay)
61
  logger.info(f"等待验证码,重试第 {_ + 1} 次")
@@ -122,15 +127,23 @@ def wait_for_url(driver, url, timeout=10):
122
 
123
  def wait_for_email_input(driver, timeout=10):
124
  """等待邮箱输入框出现并返回"""
 
 
125
  start_time = time.time()
126
  while time.time() - start_time < timeout:
127
  try:
 
 
 
 
 
 
 
128
  # 获取页面标题
129
  logger.info(f"当前页面标题: {driver.title}")
130
 
131
  # 检查页面源代码中是否包含关键元素
132
- logger.info("检查页面源代码...")
133
- if "descope-wc" in driver.page_source:
134
  logger.info("找到 descope-wc 元素")
135
  else:
136
  logger.info("未找到 descope-wc 元素")
@@ -179,6 +192,15 @@ def wait_for_email_input(driver, timeout=10):
179
  logger.info("等待0.5秒后重试...")
180
  time.sleep(0.5)
181
 
 
 
 
 
 
 
 
 
 
182
  logger.error("邮箱输入框未出现")
183
  return False
184
 
@@ -221,6 +243,8 @@ def input_verification_code(driver, code):
221
 
222
  def registration_process(driver, wait):
223
  try:
 
 
224
  # 生成邮箱地址
225
  email = generate_email()
226
  if not email:
 
24
  )
25
  logger = logging.getLogger(__name__)
26
 
27
+ # 在文件开头添加配置
28
+ MAX_CONSECUTIVE_FAILURES = 3 # 最大连续失败次数
29
+ ENABLE_FAILURE_STOP = True # 失败停止开关
30
+ consecutive_failures = 0 # 连续失败计数器
31
+
32
  def get_verification_code(driver, email, max_retries=10, delay=2):
33
  email_url = f'https://linshiyou.com/#/{email}'
34
 
 
60
  return verification_code
61
 
62
  except Exception as e:
63
+ logger.error(f"获取���证码时发生错误: {str(e)}")
64
 
65
  time.sleep(delay)
66
  logger.info(f"等待验证码,重试第 {_ + 1} 次")
 
127
 
128
  def wait_for_email_input(driver, timeout=10):
129
  """等待邮箱输入框出现并返回"""
130
+ global consecutive_failures # 使用全局计数器
131
+
132
  start_time = time.time()
133
  while time.time() - start_time < timeout:
134
  try:
135
+ # 获取并记录页面源码
136
+ page_source = driver.page_source
137
+ logger.info("当前页面源码:")
138
+ logger.info("=" * 50)
139
+ logger.info(page_source[:500] + "...") # 只打印前500字符
140
+ logger.info("=" * 50)
141
+
142
  # 获取页面标题
143
  logger.info(f"当前页面标题: {driver.title}")
144
 
145
  # 检查页面源代码中是否包含关键元素
146
+ if "descope-wc" in page_source:
 
147
  logger.info("找到 descope-wc 元素")
148
  else:
149
  logger.info("未找到 descope-wc 元素")
 
192
  logger.info("等待0.5秒后重试...")
193
  time.sleep(0.5)
194
 
195
+ # 更新失败计数
196
+ if ENABLE_FAILURE_STOP:
197
+ consecutive_failures += 1
198
+ logger.warning(f"连续失败次数: {consecutive_failures}")
199
+ if consecutive_failures >= MAX_CONSECUTIVE_FAILURES:
200
+ logger.critical(f"连续失败达到{MAX_CONSECUTIVE_FAILURES}次,停止脚本运行")
201
+ import sys
202
+ sys.exit(1) # 强制停止脚本
203
+
204
  logger.error("邮箱输入框未出现")
205
  return False
206
 
 
243
 
244
  def registration_process(driver, wait):
245
  try:
246
+ global consecutive_failures # 使用全局计数器
247
+
248
  # 生成邮箱地址
249
  email = generate_email()
250
  if not email: