fix: nodriver 兼容 - 用 el[value]/get_js_attributes 替代 get_attribute,browser.stop() 去掉 await
Made-with: Cursor
This commit is contained in:
22
main.py
22
main.py
@@ -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
|
||||||
|
|
||||||
# 仍未通过,刷新页面重新走验证
|
# 仍未通过,刷新页面重新走验证
|
||||||
|
|||||||
Reference in New Issue
Block a user