隔壁寝室刷问卷刷疯了,我们寝室则相反,打游戏的同时问卷份数也在增加,隔壁寝室的人投来羡慕的目光,向我要代码!!

现在正值各校开学之际,本人也已开学,现在的任务就是社会实践,需要发布…

现在正值各校开学之际,本人也已开学,现在的任务就是社会实践,需要发布问卷调查。问卷份数的多少与你的人脉息息相关。对于人脉不是特别多的我来说,用python写一个程序来帮忙填问卷是个不错的选择。

一、前言

注:虽然问卷星中有多选题,但是本博文的程序只会单选,以后应该会更新多选题的代码

以下代码仅供参考哦,应具体问卷具体分析

这是问卷星的部分问题

二、正文

1.模块

①该程序通过selenium模拟人的点击操作,类似与别人帮你操作电脑。只不过这里的别人是python代码

②该程序通过random函数,做到随机选择某个选项

③schedule函数表示定时执行该程序,本文是每隔5秒运行程序(程序运行完后过5秒再开始重新运行)

2.注意事项

通过selenium运行问卷星的网址时,会出现智能验证,虽然只要点击就能进行智能检验,但是尝试后发现只要通过selenium运行,无论是手动还是自动,都会报错,尝试多次仍报错。起初我以为是运行时间没有间隔,导致问卷星把它当作爬虫处理,后来我加大时间间隔,发现仍然不行。

查阅相关资料以及别人的博客,我发现是因为问卷星的网页有反爬机制,它会检查你是不是通过selenium访问网页的。大多数情况下,检测基本原理是检测当前浏览器窗口下的window.navigator对象是否包含webdriver这个属性。因为在正常使用浏览器的情况下,这个属性是undefined,然而一旦我们使用了selenium,selenium会给window.navigator设置webdriver属性。很多网站就通过JS判断如果webdrive 属性存在,那就直接屏蔽。以下代码可以在每次页面加载之前就不会给window.navigator设置webdriver属性,从而能够通过智能检测。

3.代码讲解

①以上代码定位元素最好copy selector,因为之前在浏览器copy xpath的时候有时候会报错。

②当第三题的答案为否时,才弹出第四题,当第三题的答案为是时,跳过第四题。

③两个if函数不能调换,否则i += 1运行时会找不到第六题其他选项的文本输入而报错。

④len(a)表示选项的个数,b表示随机选择一个数字(不会超出选项的个数)

以上代码表示每隔5秒运行一次程序的模板,以后可以套用,隔的时间可以自己更改

4.运行视频

三、结论

运行该程序后,刷60份问卷左右,程序将会出现滑块验证码,大家感兴趣的可以试着去破解一下,该滑动验证码为从左滑到最右边。大家也可以用你室友的电脑运行一下这个程序。更重要的是,出现验证码后,过一个小时以后(具体时间不清楚),滑块验证码就又消失了,程序又能刷问卷了,本人由于份数刷够了,就没有接下去进行试验,大家感兴趣的可以去记录一下,看是否有规律。

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/965.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部