import time

from datetime import datetime

from random import randint

from requests_html import HTMLSession

# from spider_wjx.configs import (QUESTION_ID, QUESTION_URL, POST_URL_MAP, QUESTION_INFO, ANSWER_TIMES)

#改成自己的id

QUESTION_ID = 71699967

#问卷星答题地址

QUESTION_URL = "https://www.wjx.cn/m/{}.aspx".format(QUESTION_ID)

#题目数量,这里只要单选题目的数量

QUESTION_NUM = 14

# 提交问卷选项的url

POST_URL_MAP = "https://www.wjx.cn/joinnew/processjq.ashx?submittype=1&curID={}&t={}&starttime={}&rn={}"

QUESTION_INFO = '''

题目:{}

选项:{}

随机选择结果:{}

~~~~~~~~~~~~~~~~~~~~~~

'''

# 回答次数

ANSWER_TIMES = 200

def parse_post_url(resp):

'''

解析出提交问卷的url

'''

# 找到rn

rn = int(resp.html.search('rndnum="{}"')[0].split('.')[0])

# 提交问卷的时间

raw_t = round(time.time(), 3)

t = int(str(raw_t).replace('.', ''))

# 模拟开始答题时间

starttime = datetime.fromtimestamp(

int(raw_t) - randint(1, 60 * 3)).strftime("%Y/%m/%d %H:%M:%S")

url = POST_URL_MAP.format(QUESTION_ID, t, starttime, rn)

return url

def parse_post_data(resp):

'''

解析出问题和选项

返回post_data

'''

post_data = {'submitdata': ""}

questions = resp.html.find('.fieldset', first=True).find(".field")

print(questions)

for i, q in enumerate(questions):

if i == QUESTION_NUM:

post_data['submitdata'] = post_data['submitdata']+'15$'

return post_data

title = q.find('.field-label', first=True).text

choices = [t.text for t in q.find('.label')]

random_index = randint(0, len(choices) - 1)

choice = choices[random_index]

post_data['submitdata'] += '{}${}}}'.format(i+1, random_index+1)

print(QUESTION_INFO.format(title, choices, choice))

time.sleep(0.5)

# 去除最后一个不合法的`}`

# post_data['submitdata'] = post_data['submitdata'][:-1]

# return post_data

def post_answer(session, url, data):

'''

提交答案

'''

r = session.post(url, data)

print('提交状态:{}'.format(r.status_code))

def simulate_survey():

'''

模拟回答问卷

'''

session = HTMLSession()

resp = session.get(QUESTION_URL)

url = parse_post_url(resp)

data = parse_post_data(resp)

print(data)

post_answer(session, url, data)

def main():

print('开始模拟填写问卷,共模拟{}次'.format(ANSWER_TIMES))

for i in range(ANSWER_TIMES):

simulate_survey()

sleep_time = randint(1, 60)

print('第{}次问卷填写完毕,即将沉睡{}s'.format(i+1, sleep_time))

time.sleep(sleep_time)

if __name__ == '__main__':

main()

python写自动答题脚本_问卷星的自动答题脚本相关推荐

  1. 关于如何自动填写并提交问卷星

    关于如何自动填写并提交问卷星 今天想要刷问卷,网上找了许多,遇到了两个比较大的问题,一个是不知道如何填写想要的内容(选择题)还有一个是不知道如何破解问卷星的点击验证 https://tp.wjx.to ...

  2. python问卷星 自动答题_问卷星自动答题神器

    问卷星自动答题神器,由易语言编写的一个问卷星自动答题软件,输入答题界面地址即可实现多IP提交答题功能,可以设置提交份数,系统会模拟不同的IP进行作答并将答题内容上传到问卷星官方.可以进入问卷星官网界面 ...

  3. python实现随机抽取答题_问卷星可以随机抽取题库答题吗

    问卷星可以随机抽取题库答题吗 简介 自动填写问卷并提交 , 然后自动刷新继续填写 , 适用于问卷星 , 欢迎 Star 上个月开源了一个 Python 项目(登上过 GitHub 最流行的 中文语言 ...

  4. 问卷星简单自动填写调查问卷

    这段时间,看到群里很多同学都在发链接请大家填写调查问卷,本文将基于目前使用较多的调查问卷软件--问卷星,实现问卷的自动填写. 功能实现: 1.在浏览器中添加书签,在书签中的地址栏中复制如下代码 2.代 ...

  5. 跳过问卷星微信登录答题限制 —— 浏览器伪装微信环境

    文章目录 1. 背景 2. 方法 3. 结果与讨论 4. 总结与展望 1. 背景 学校发布的问卷星问卷用于收集相关个人信息,但问卷只能在微信中作答,这不利于我的浏览器(网页端)中 JavaScript ...

  6. 异星工厂 自动机器人_异星工厂自动科研系统建造技巧_图文攻略

    异星工厂自动科研系统建造技巧_图文攻略 1.建立基地第一件事是把周围的煤铁铜石用传送带串联循环,可以建一条大环路,然后把各个资源点产出的资源循环到上面,铁铜煤石采集机器的比例最好保持6:2:1:1. ...

  7. 苹果 python蚂蚁森林自动收能量_通过测试工具自动收取蚂蚁森林能量

    本文仅为自动化工具appium的技术研究,请勿用于任何非正当用途 最近在家远程工作,结果作息更混乱了,早上起不来,导致我蚂蚁森林能量天天被偷,严重影响我沙漠造树"大业" ‍♂️.于 ...

  8. 我的世界服务器java启动脚本_我的世界自动重启脚本教程

    今天为大家带来了我的世界自动重启的一个脚本,如何让服务器自动重启呢?那就来看看小编为大家带来的文章吧! 首先,你要有一个对应你服务器核心的插件,能让你的服务器实现定时关闭服务器. 说白了就是定时或者定 ...

  9. python写个礼物送人_送你个情人节礼物:Python版抖音同款表白神器

    又到了一年一度的情人节!大家都准备送什么给自己心仪的对象呢? 鲜花.巧克力都太俗套了,今天给大家带来一个抖音上看到的表白神器 - 用Python写一个告白程序,让她看到你满满的爱(tao)意(lu). ...

最新文章

  1. 打造数字原生引擎,易捷行云EasyStack发布新一代全栈信创云
  2. mysql get_mysql GET DIAGNOSTICS 语法
  3. Postgres数据库备份与还原命令
  4. 2020-11-13(混淆技术)
  5. 160个Crackme033
  6. linux部署的java应用,浏览器访问时,报域名解析错误
  7. 【游记】CCHO TY国初划水记
  8. unity如何得到所有子对象_Unity用户手册-Mesh合批
  9. 实验6.1 定义一个基类Animal
  10. php模拟登录京东,京东jos 获取授权及php-sdk的使用示例
  11. 程序员面试金典——1.2原串翻转
  12. kotlin支持jdk1.8编译,使用Java8特性
  13. ES6躬行记(3)——解构
  14. gevent实现套接字
  15. 基于matlab道路交通标志牌,基于MATLAB的道路交通标志识别
  16. 【跨年烟花代码】用C语言来写“烟花”,快拿去给心中的那个人看
  17. matlab模拟掷骰子,利用几何画板模拟掷骰子实验
  18. 人工智能对智能建筑有哪些影响,智能建筑发展存在哪些问题?
  19. 中国大学生学习与发展追踪研究(2007年至今)与中国综合社会调查(2003-2017年)与中国社会状况综合调查(2006-2019年)
  20. 【软件设计】BDD由内而外采用策略

热门文章

  1. nginx服务器绑定域名和设置根目录的方法
  2. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
  3. 【原创】纯干货,Spring-data-jpa详解,全方位介绍。(转)
  4. In-Sat:今年全球VoIP用户将达5500万
  5. 5.3多线程条件变量
  6. 一天一种设计模式之五-----代理模式
  7. exchange 2013 lesson 4 - installing
  8. nginx+keepalived安装配置(整理中)
  9. [置顶]       Mybatis技术(二) MyBatis-Spring
  10. Time包详解二-timer和ticket.html