问卷星自动填写

谁说我不能喝 提交于 2021-02-16 05:46:44



前言

问卷星是一个大学生都在用的问卷采集工具,每到期末,朋友圈总会有一大波问卷席卷而来。

可不可以自动填呢,可以的,小编找了一份问卷,使用 python 实现了一下,成功得到了几份问卷。

问卷星的反爬还有点厉害,涉及到无限 debugger。



无限 debugger

问卷链接:

https://www.wjx.cn/m/99634699.aspx

打开链接,打开开发者工具,过了几秒后,就会被打上断电,暂停掉:



点击运行又会跳回这个页面,怎么点都没用,代码都查看不了,这就是无限 debugger,要解决呢,这里介绍两种办法,

第一是最直接简单的,取消断点,但这样做的话自己要打断点调试就不可以了,有局限。

第二种使用 Fiddler 修改网页返回内容过滤掉debugger标签可以破解此套路。

对于问卷星,使用第一种就可以了点击取消断点,再点击运行,就可以检查元素了:



接下来就可以编写问卷填写逻辑了。



填写逻辑

对于此问卷,有多页,都是选择题,对于这种需求首先想到的是 selenium 咯,模拟浏览器自动填写。

另外的思路就是破解提交问卷后的请求,但这种有点难度,就选最直接的方法了。

问卷星的问题虽然有多页,但所有页的所有问题的代码都可以在第一页的代码中看到:



上图中是问题第一页,在这一页,查看源代码,发现问卷的 8 页的代码标签都在这了,所以不需要翻页去查看后面的问题了。

接下来就简单多了,问题就是提取所有页的标签,循环每一页标签,从每一页标签中提取每个问题,再随机选择答案,翻页,最后提交。

核心代码为:



最后运行代码,自动填写后,问卷成功提交:



设置循环次数,这样就可以得到一些问卷,但同一个 ip 次数太多的话就会被验证了,可以换 ip 试试。



源码获取

在公众号“木下学Python”回复“问卷星”即可获取。



END

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注小编呗~小编给你分享爬虫,数据分析,可视化的内容噢~

扫一扫下方二维码即可关注我噢~


-END-




本文分享自微信公众号 - 木下学Python(zjk_py)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!