学习文档
深入理解问卷自动化技术的核心原理
📚
项目概述
整体架构设计、技术选型理由和系统工作流程
系统架构图FastAPI + Playwright 技术栈模块职责划分
🔍
问卷解析原理
如何通过 HTML 解析提取问卷结构
BeautifulSoup 使用CSS 选择器正则表达式匹配题型识别逻辑
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "lxml")
questions = soup.select("div.field")
for q in questions:
title = q.select_one(".topic").text
options = q.select("input[type=radio]")🌐
代理 IP 技术
代理类型、轮换策略和健康检查机制
HTTP/HTTPS/SOCKS5 代理代理池管理轮换策略失效处理
# 代理轮换策略
def get_proxy(strategy="round_robin"):
if strategy == "round_robin":
proxy = proxies[current_index % len(proxies)]
current_index += 1
return proxy
elif strategy == "random":
return random.choice(proxies)🎯
行为模拟技术
贝塞尔曲线、随机延迟和人类行为模拟
贝塞尔曲线鼠标轨迹打字行为模拟随机延迟分布加权随机选择
# 三次贝塞尔曲线
def bezier_point(p0, p1, p2, p3, t):
u = 1 - t
return (u**3 * p0 +
3 * u**2 * t * p1 +
3 * u * t**2 * p2 +
t**3 * p3)🛡️
反检测技术
浏览器指纹、检测规避和安全策略
User-Agent 随机化视口随机化时间随机化请求头伪装
# 浏览器指纹随机化
context = browser.new_context(
viewport=random.choice(viewports),
user_agent=random.choice(user_agents),
locale="zh-CN",
timezone_id="Asia/Shanghai"
)📖 推荐学习资源
⚠️
重要提醒
- • 本工具仅供学习研究自动化技术使用
- • 请勿用于任何违反法律法规的用途
- • 测试时请使用自己创建的问卷
- • 尊重网站的服务条款和 robots.txt