# audiencescf 使用 Nodriver 自动通过 Cloudflare Turnstile 验证,访问受保护的目标页面。通过页面上的「给我搜」按钮(`#search_btn`)判断是否已通过验证。 ## 功能 - **定时检查**:每 30 分钟执行一次检查,程序持续运行(间隔可在 `main.py` 中修改 `INTERVAL_MINUTES`) - 启动时从项目根目录 `cookies.txt` 加载 Cookie(支持 Netscape 与 nodriver 原生格式) - 进入目标页后根据 `#search_btn` 的 value 是否为「给我搜」判断是否需要验证 - 需要验证时:等待 CF 自动通过 + 使用模板匹配点击 Turnstile 复选框(依赖 `box.png`) - 验证后等待 10 秒再次检查;若仍未变为「给我搜」则刷新页面并重新走验证流程,直到通过后关闭本次浏览器,等待下一轮定时 ## 环境 - Python 3.x - 依赖:`nodriver`;点击 Turnstile 时需 `opencv-python`(模板匹配) ```bash pip install -r requirements.txt pip install opencv-python ``` ## 使用 1. 在 `main.py` 中确认 `TARGET_URL` 为目标页面地址。 2. (可选)在项目根目录放置 `cookies.txt`: - Netscape 格式:首行为 `# Netscape` 或 `# HTTP Cookie File` - 或使用 nodriver 原生导出的格式 3. 若使用 Turnstile 点击,确保根目录有模板图 `box.png`(与当前页面复选框区域匹配)。 4. 运行: ```bash python main.py ``` 程序会每 30 分钟打开浏览器执行一次检查,通过后关闭浏览器并等待下一轮。默认以有界面浏览器运行,便于通过验证。退出请手动中断(如 Ctrl+C)。 ## 文件说明 | 文件 | 说明 | |------|------| | `main.py` | 主流程:每 30 分钟执行一次检查(加载 Cookie、打开页面、判断验证、点击 Turnstile、循环重试直至通过) | | `cookies_loader.py` | 读取并注入 `cookies.txt`(Netscape / 原生格式) | | `box.png` | Turnstile 复选框模板图,用于截图匹配点击 | | `cookies.txt` | 本地 Cookie 文件(已加入 .gitignore,勿提交) | ## 注意 - `cookies.txt`、`click_position.png` 等已写入 `.gitignore`,不会随仓库提交。 - 修改目标站点时请同步确认 `#search_btn` 与「给我搜」的文案是否仍适用于该页面。