Auto-WJX 是一个基于 Python 和 Selenium 的自动化工具,用于自动填写问卷星(WJX)问卷。该工具通过模拟用户行为,能够自动分析问卷结构,并根据配置文件进行智能填写,支持多次填写问卷。
- 自动分析问卷结构并生成配置文件
- 支持单选题、多选题和文本填空题的自动填写
- 基于权重的随机选择,使填写结果更加真实
- 模拟人工操作,添加随机延迟
- 支持多页问卷和"开始作答"类型的问卷
- 自定义填写次数,可批量提交多份问卷
- 针对问卷星的各种元素结构进行了优化
- Python 3.6 或更高版本
- Chrome 浏览器
- Chrome WebDriver
- 克隆或下载此项目到本地
- 安装所需的 Python 依赖包:
pip install -r requirements.txt- 将 ChromeDriver (
chromedriver.exe) 放置在项目目录中
- 首次运行配置生成器:
python config_generator.py-
生成器会生成
read_link.txt文件 -
编辑
read_link.txt文件,写入问卷星链接 -
程序会自动分析问卷结构并生成
config.json文件
编辑 config.json 文件,根据需要调整:
- 问题选项的权重
- 问卷填写次数 (
repeat_count) - 操作延迟时间
- 其他问卷参数
python main.py程序会根据配置自动打开浏览器,填写并提交问卷。
config.json 包含以下主要设置:
{
"url": "问卷星链接",
"has_start_button": "True/False",
"pages": [
{
"questions": [
{
"id": "问题ID",
"type": "问题类型", // "radio", "checkbox", 或 "text"
"title": "问题标题",
"xpath": "问题元素的xpath",
"options": [
{
"text": "选项文本",
"weight": "选择权重" // 权重越高,被选中概率越大
}
],
// 多选题的额外配置
"min_select": "最少选择数量",
"max_select": "最多选择数量"
}
]
}
],
"submit": {
"xpath": "提交按钮的xpath"
},
"delay": {
"min_time": "最小延迟秒数",
"max_time": "最大延迟秒数"
},
"repeat_count": "重复填写次数" // 设置要填写的问卷份数
}-
合规使用:请遵守问卷发布方的规定,不要恶意填写或提交虚假信息
-
避免检测:
- 适当调高
delay参数,模拟真实填写速度 - 尝试使用其他浏览器选项,如添加代理
- 不要在短时间内提交过多问卷
- 适当调高
-
问卷兼容性:
- 工具针对常见问卷类型进行了优化,但可能无法支持特殊问卷
- 如遇到填写失败,可尝试调整 config.json 中的 XPath
-
浏览器设置:
- 如需在后台运行,可在 main.py 中取消注释
chrome_options.add_argument('--headless') - 如遇浏览器兼容性问题,请更新 Chrome 和 ChromeDriver 到匹配版本
- 如需在后台运行,可在 main.py 中取消注释
通过设置 config.json 中的 repeat_count 参数,可以实现自动填写多份问卷:
"repeat_count": 5 // 设置填写5份问卷每次填写会重新启动浏览器,并在填写之间添加随机延迟,以避免被检测为自动填写。
如果遇到问题:
- 确保 ChromeDriver 版本与 Chrome 浏览器版本匹配
- 检查问卷链接是否有效
- 确保配置文件中的 XPath 正确
- 尝试增加延迟时间,减少被识别为机器人的可能性
如需进一步优化工具:
- 添加随机用户代理和IP代理
- 增加更多问题类型的支持
- 实现更智能的问卷内容生成
- 添加填写日志和数据统计功能
希望 Auto-WJX 能帮助你高效完成问卷填写!