Mohit1053/web-automation-framework
GitHub: Mohit1053/web-automation-framework
一套集成指纹伪装、人类行为模拟、多策略IP轮换和LLM内容生成的隐蔽式网页自动化框架,用于对抗机器人检测并完成大规模表单交互任务。
Stars: 0 | Forks: 0
# Web 自动化框架
[\](https://www.python.org/downloads/)
[\](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自动化, 人机模拟, 代理轮换, 内存规避, 内容生成, 反检测, 大语言模型, 数据管道, 无后门, 无头浏览器, 流量伪装, 浏览器指纹, 爬虫框架, 网络安全, 行为模拟, 表单自动填充, 软件工程, 隐私保护, 隐藏技术, 验证码绕过