fix: nodriver 兼容 - 用 el[value]/get_js_attributes 替代 get_attribute,browser.stop() 去掉 await

Made-with: Cursor
This commit is contained in:
2026-02-26 09:21:29 +08:00
parent 7991fb85d1
commit de829e970c

22
main.py
View File

@@ -14,18 +14,24 @@ from cookies_loader import (
inject_netscape_cookies, inject_netscape_cookies,
) )
TARGET_URL = "https://dash.cloudflare.com/sign-up" TARGET_URL = "https://audiences.me/torrents.php"
async def get_search_btn_value(page): async def get_search_btn_value(page):
"""获取 #search_btn 的 value用于判断是否需要验证。""" """获取 #search_btn 的 value用于判断是否需要验证。"""
try: try:
el = await page.query_selector("#search_btn") el = await page.query_selector("#search_btn")
print(f"el: {el}")
if el is None: if el is None:
return None return None
raw = await el.get_attribute("value") # nodriver Element 用 el["value"] 或 get_js_attributes 取属性,无 get_attribute
raw = el["value"]
if raw is None:
attrs = await el.get_js_attributes()
raw = attrs.get("value") if attrs else None
return (raw or "").strip() return (raw or "").strip()
except Exception: except Exception as e:
print(f"Exception: {e}")
return None return None
@@ -98,9 +104,10 @@ async def run_one_check():
# 进入页面后等待一下再判断 # 进入页面后等待一下再判断
await page.sleep(2) await page.sleep(2)
val = await get_search_btn_value(page) val = await get_search_btn_value(page)
if val == "给我搜": print(f"val: {val}")
if val and "给我搜" in val:
# 不需要验证,直接结束本次检查 # 不需要验证,直接结束本次检查
await browser.stop() browser.stop()
return return
# 需要验证:等待 CF 自动通过后尝试点击 Turnstile # 需要验证:等待 CF 自动通过后尝试点击 Turnstile
@@ -111,9 +118,10 @@ async def run_one_check():
# 验证后等 10 秒看是否变为「给我搜」 # 验证后等 10 秒看是否变为「给我搜」
await page.sleep(10) await page.sleep(10)
val_after = await get_search_btn_value(page) val_after = await get_search_btn_value(page)
if val_after == "给我搜": print(f"val_after: {val_after}")
if val_after and "给我搜" in val_after:
# 已通过,关闭浏览器,结束本次检查 # 已通过,关闭浏览器,结束本次检查
await browser.stop() browser.stop()
return return
# 仍未通过,刷新页面重新走验证 # 仍未通过,刷新页面重新走验证