Mohit1053/web-automation-framework

GitHub: Mohit1053/web-automation-framework

一套集成指纹伪装、人类行为模拟、多策略IP轮换和LLM内容生成的隐蔽式网页自动化框架,用于对抗机器人检测并完成大规模表单交互任务。

Stars: 0 | Forks: 0

# Web 自动化框架 [\![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/) [\![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) ## 架构 ``` +---------------------------------------------------------------------+ | Web Automation Framework | +--------------+--------------+-----------+-----------+--------------+ | | | | | | | Browser | IP | LLM | Form | Data | | Control | Rotation | Engine | Recon | Pipeline | | | | | | | | +--------+ | +--------+ | +-------+ | +-------+ | +----------+| | |Stealth | | | Tor | | |OpenAI | | |XPath | | | Batch || | |Driver | | |Circuit | | |Claude | | | Gen | | | Merge || | +--------+ | +--------+ | +-------+ | +-------+ | +----------+| | |Finger- | | |USB | | |Persona| | |Honey- | | |Validation|| | |print | | |Dongles | | |Engine | | |pot | | | Engine || | |Evasion | | +--------+ | | | | |Detect | | +----------+| | +--------+ | |Router | | | | | | | | | Log || | |Human | | |Reset | | | | | | | | | Parser || | |Behavior| | +--------+ | | | | | | | | || | | | | |Proxy | | | | | | | | | || | | | | |Pool | | | | | | | | | || | +--------+ | +--------+ | +-------+ | +-------+ | +----------+| +--------------+--------------+-----------+-----------+--------------+ ``` ## 模块 ### 1. 浏览器控制 基于 Selenium 和 `undetected-chromedriver` 构建的不可检测浏览器自动化。 | 组件 | 描述 | | -------------------- | ----------------------------------------------------------------- | | **Stealth Driver** | 封装 `undetected-chromedriver`,具有随机化的启动参数 | | **Fingerprint Evasion** | 在 **6 个表面**之间轮换:User-Agent、视口、WebGL 渲染器、Canvas 噪声、时区和语言标头 | | **Human Behavior** | 高斯分布的鼠标移动、可变击键延迟、随机滚动模式和空闲暂停 | ### 2. IP 轮换 获取新 IP 地址的四种独立策略。 | 策略 | 机制 | | ----------------- | --------------------------------------------------------------- | | **Tor Circuits** | 通过 Stem 发送编程式 `NEWNYM` 信号;等待唯一的出口 IP | | **USB Dongles** | AT 命令调制解调器重置 (`AT+CFUN=1,1`) 以触发 DHCP 重新租约 | | **Router Reset** | Selenium 驱动的管理面板登录,以重启家用路由器 | | **Proxy Pool** | 来自住宅代理列表的轮询或加权选择 | ### 3. LLM 引擎 具有提供者抽象功能的 AI 驱动内容生成。 | 组件 | 描述 | | -------------------- | -------------------------------------------------------------- | | **Multi-Provider** | OpenAI、Anthropic Claude 和本地 Ollama 模型的统一接口 | | **Persona Engine** | 生成人口统计学上一致的身份(姓名、电子邮件、公司、简介)并根据角色改变写作风格 | ### 4. 表单侦察 自动化表单发现、映射和障碍检测。 | 组件 | 描述 | | -------------------- | -------------------------------------------------------------- | | **XPath Generator** | 抓取目标页面并为每个 input、select 和 textarea 元素生成稳定的 XPath/CSS 选择器 | | **Honeypot Detector**| 识别隐藏字段、屏幕外输入和 CSS `display:none` 陷阱,以避免触发机器人检测 | ### 5. 数据管道 提交后的数据处理、验证和可观测性。 ## | 组件 | 描述 | | -------------------- | -------------------------------------------------------------- | | **Batch Merge** | 将每个 worker 的 CSV 分片合并为单个去重数据集 | | **Validation Engine**| 最终导出前的 Schema 检查、电子邮件格式验证和重复检测 | | **Log Parser** | 结构化 JSON 日志记录,包含每次提交的结果跟踪、错误分类和重试指标 | ## 技术栈 | 层级 | 技术栈 | | -------------- | ----------------------------------------------------------- | | 语言 | Python 3.10+ | | Browser Driver | Selenium 4, undetected-chromedriver | | 网络 | Stem (Tor), requests, PySocks | | LLM | OpenAI API, Anthropic API, Ollama | | 数据 | pandas, csvkit | | 调度 | concurrent.futures, APScheduler | | 日志 | structlog, Python logging | | 配置 | pydantic-settings, YAML | ## 快速入门 ### 安装 ``` pip install -e ".[dev]" ``` ### 基本用法 ``` from waf.browser import StealthBrowser from waf.rotation import TorRotator from waf.llm import LLMEngine # 启动 stealth browser 会话 browser = StealthBrowser(headless=True) driver = browser.launch() # 在每个 request 前通过 Tor 轮换 IP rotator = TorRotator(control_port=9051, password="changeme") rotator.new_identity() # 使用 AI 生成 form 内容 llm = LLMEngine(provider="openai", model="gpt-4o-mini") persona = llm.generate_persona() message = llm.compose_message( context="product inquiry", persona=persona, ) # 导航并提交 driver.get("https://example.com/contact") driver.find_element("id", "name").send_keys(persona["name"]) driver.find_element("id", "email").send_keys(persona["email"]) driver.find_element("id", "message").send_keys(message) driver.find_element("id", "submit").click() browser.quit() ``` ## 项目结构 ``` waf/ ├── README.md ├── pyproject.toml ├── waf/ │ ├── __init__.py │ ├── browser/ │ │ ├── stealth_driver.py │ │ ├── fingerprint.py │ │ └── human_behavior.py │ ├── rotation/ │ │ ├── tor_rotator.py │ │ ├── dongle_reset.py │ │ ├── router_reset.py │ │ └── proxy_pool.py │ ├── llm/ │ │ ├── engine.py │ │ └── persona.py │ ├── recon/ │ │ ├── xpath_gen.py │ │ └── honeypot.py │ └── pipeline/ │ ├── merge.py │ ├── validate.py │ └── log_parser.py ├── examples/ │ ├── stealth_browsing.py │ └── ip_rotation_demo.py ├── tests/ │ └── ... └── configs/ └── default.yaml ``` ## 生产部署统计 | 指标 | 数值 | | --------------------- | ------------------------------ | | 总提交数 | 500,000+ | | Concurrent Workers | 15 -- 20 | | 成功率 | 85 -- 90% | | IP 轮换方法 | 4 (Tor, Dongle, Router, Proxy) | | 测试的 LLM 提供者 | 3 (OpenAI, Claude, Ollama) | | 平均提交时间 | 18 -- 25 秒 | | 正常运行时间(受监督) | 48 小时无人值守运行 | ## 演示概念 - **隐性浏览器自动化**,在六个不同的表面进行指纹随机化 - **多策略 IP 轮换**,结合 Tor、硬件 Dongle、路由器重置和代理池 - **LLM 驱动的内容生成**,具有角色一致性和风格变化 - **自动化表单侦察**,包括 Honeypot 和机器人陷阱检测 - **可扩展的数据管道**,具有批量合并、Schema 验证和结构化日志记录 - **并发 Worker 编排**,使用 Python 的 `concurrent.futures` 线程/进程池 - **弹性错误处理**,具有指数退避、每次提交的重试逻辑和死信队列 ## 免责声明 本框架仅供**授权测试、研究和教育目的**提供。 用户需独自负责确保其使用符合所有适用法律、 服务条款和组织政策。作者不对误用承担任何责任。 ## 许可证 本项目基于 [MIT 许可证](LICENSE) 授权。
标签:AI风险缓解, Claude, CVE检测, DLL 劫持, DNS 解析, IP轮换, OpenAI, Petitpotam, Python, Selenium, SEO, Tor, undetected-chromedriver, Web自动化, 人机模拟, 代理轮换, 内存规避, 内容生成, 反检测, 大语言模型, 数据管道, 无后门, 无头浏览器, 流量伪装, 浏览器指纹, 爬虫框架, 网络安全, 行为模拟, 表单自动填充, 软件工程, 隐私保护, 隐藏技术, 验证码绕过