Skip to content

Commit b37d166

Browse files
committed
优化登录逻辑
1 parent a0f9b7f commit b37d166

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

main.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def login(self):
143143
except Exception as e:
144144
logger.error(f"登录请求异常: {e}")
145145
return False
146-
146+
147147
self.print_connect_info() # 打印连接信息
148148

149149
# Step 3: Pass cookies to DrissionPage
@@ -190,9 +190,13 @@ def login(self):
190190

191191
def click_topic(self):
192192
topic_list = self.page.ele("@id=list-area").eles(".:title")
193+
if not topic_list:
194+
logger.error("未找到主题帖")
195+
return False
193196
logger.info(f"发现 {len(topic_list)} 个主题帖,随机选择10个")
194197
for topic in random.sample(topic_list, 10):
195198
self.click_one_topic(topic.attr("href"))
199+
return True
196200

197201
@retry_decorator()
198202
def click_one_topic(self, topic_url):
@@ -234,13 +238,15 @@ def browse_post(self, page):
234238
time.sleep(wait_time)
235239

236240
def run(self):
237-
if not self.login(): # 登录
238-
logger.error("登录失败,程序终止")
239-
sys.exit(1) # 使用非零退出码终止整个程序
240-
241+
login_res = self.login()
242+
if not login_res: # 登录
243+
logger.warning("登录验证失败")
241244

242245
if BROWSE_ENABLED:
243-
self.click_topic() # 点击主题
246+
click_topic_res = self.click_topic() # 点击主题
247+
if not click_topic_res:
248+
logger.error("点击主题失败,程序终止")
249+
return
244250
logger.info("完成浏览任务")
245251

246252
self.send_notifications(BROWSE_ENABLED) # 发送通知
@@ -263,7 +269,12 @@ def click_like(self, page):
263269

264270
def print_connect_info(self):
265271
logger.info("获取连接信息")
266-
resp = self.session.get("https://connect.linux.do/", impersonate="chrome136")
272+
headers = {
273+
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
274+
}
275+
resp = self.session.get(
276+
"https://connect.linux.do/", headers=headers, impersonate="chrome136"
277+
)
267278
soup = BeautifulSoup(resp.text, "html.parser")
268279
rows = soup.select("table tr")
269280
info = []

0 commit comments

Comments
 (0)