Python填写问卷星

Python013

Python填写问卷星,第1张

有些无意义的问卷作业,真的没有必要。

但是作业既然有了,那就想办法解决它把。

关于IP限制的问题,可以使用X-Forwarded-For更换IP。

只会用印象笔记markdown的我,感觉markdown好复杂。

我想做个目录,但是[toc]没反应,...

1$2:表示选择第一问的第二个选项,这是单选题的数据格式

构造url需要submittype, curID, t, starttime, ktimes, rn, hlv, jqnonce, jqsign

经实验,必要的参数如下:

必要参数获取方式:

思路有了,可以开工了。

先定义一个问卷星的类:

ktimes生成函数

header设置函数:

随机生成IP,如果不换IP,提交多了会提示输入验证码

很少见到x-forwarded-for能有用的时候,问卷星刚好就可以

访问问卷网址,获取response:

通过上面的response获取jqnonce:

由于jqnonce是script里面的一个变量,所以使用正则表达式提取

我更喜欢xpath,但是好像xpath提不出来

通过response获取rn:

通过response获取id

通过jqnonce和ktimes生成jqsign:

通过response获取starttime:

获取starttime的正则表达式我没有获取秒,因为获取秒后会弹验证码

我猜测:

终于把各个参数获取的差不多了,可以生成url了:

url生成好了,我们基本成功了,剩下的工作就比较轻松了

生成需要提交的数据:

万事俱备,只欠东风。

如果response.text为22,则代表失败

会有少数的失败,不知道什么原因

post_data函数:

run函数:

至此我们就可以全自动化的填问卷了,而且不受ip的限制

一次填写多个问卷:

运行一下:

结果:

红色圈出来的22代表失败,其他的代表成功

问卷统计:

好了,该睡觉了