Python 爬虫问卷星填写

​ 因为一些没必要的问卷作业,需要一批问卷数据。尝试用Python实现问卷星的问卷填写,参考了目前网络上的Python问卷星的填写,貌似很多漏洞已经修复了。12月时,基本上爬虫的方式来批量填写已经不能完成。但是,既然有了问题还是要解决的。

以下是目前网络上流传的方式

1、利用Python + selenium 实现模拟浏览器

参考:https://blog.csdn.net/yan_star/article/details/89848105

  • 成果:可以实现浏览器的正常打开,并能够实现问卷的输入

  • 问题:在提交时候会出现智能验证码,貌似问卷星会检测是否为爬虫,尝试过加入header参数,目前无法解决。

2、传统构建 post 请求,通过参数传递的方式进行填写

参考:https://www.jianshu.com/p/34961ceedcb4

  • 成果:可以实现网页链接的构建,但是请求失败

  • 问题:目前问卷星添加了更多的验证参数,导致数据请求失败(22表示请求失败

​ 这里写一下主要的参数改变,通过抓取问卷星实际的POST请求进行测试,筛查掉一些没有必要的参数外,主要参数包括以下几个:

param = {"jqpram":"?","jqsign":"%3F6%3Fc%3Ed37%2B0%6040%2B23%3Eg%2B%3F223%2Bdd0%3F5025cc52",# 可以根据ktimes 和 jqnonce 生成"jqnonce":"可以直接问卷链接请求中获取,生成jqsign",# "starttime":"请求时间,可以直接问卷链接请求中获取","curID":"问卷星的编码值,可以直接问卷链接请求中获取","submittype":1,# 问卷类型,一般为 1"rn":3673390564,"sd":"http%3A%2F%2Fwww.wjx.cn%2F" # 默认值"ktimes":15 # 完成时间"rn":"从请求中获取,相较之前发生变化,只保留前半部分"
}

​ 相较之前博主写的,目前post请求已经发了一部分变化,其中最主要的变化在于添加了 jqpram,参数,这个参数我在请求中查找了一段时间,最终放弃了通过手动来生成,原因是,给出的js代码全是密文,应该经过问卷星加密后的,目前暂时没办法读,链接附上,感兴趣的可以尝试一下。

解决方案

​ 既然按照传统的爬虫,行不通,有需要批量的填写,怎么办呢?那直接使用原链接试一试(貌似也不算是正规的爬虫了)。方法如下

  • 首先,需要通过浏览器的开发者工具,获取当前需要填写的问卷的post请求链接,(跳转貌似很快,注意使用浏览器的暂停功能,防止链接被刷掉),(点击提交,再点击浏览器的红色按钮,暂停浏览器)

  • 得到 URL,填写post请求参数,格式如下

    • " 题目编号"+”$"+“题目选项(多选采用 | 分隔)”+“}"
    • 1$4}2$2}3$1|3|4}4$3}5$3}6$1}7$3}8$4}9$3}10$1}11$2}12$1|2|4}13$1|2|3|4}14$1|2|3|4}15$1|2|3|4
  • 最后就是愉快的发送请求了,采用最简单post请求方式即可

  • response = requests.post(url=post_url, data=data, headers=header) ,这样也可以根据需要填写,headers,和 cookie参数,但是好像没有也问题不大,(当然最好还是要有的)

  • 目前测试过,问卷星貌似不会封 ip,但是会限制一定时间的请求数量,最好请求一次后,sleep 一会再进行请求,一般100张的问卷需要半小时左右。

  • 当然,为了提高效率,可以采用多个 种子URL,同时进行请求,貌似也是可以的

​ 大概解决方案就是这样,当然,这不是最好的解决办法,而且,比较机械,本人能力有限,这大概时目前找到的可行的解决办法。

​ !!python写问卷星,只是权宜之计,好孩子还是不要学的

Python 爬虫问卷星填写相关推荐

  1. python爬虫之自动填写问卷星调查表

    系列文章目录 python爬虫之自动填写问卷星调查表 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一.python爬虫填写问卷星 二.使用步骤总结 ...

  2. 学习python实现问卷星自动填写问卷

    学习python实现问卷星自动填写问卷 文章目录 学习python实现问卷星自动填写问卷 任务一:找帖子 思路一: 配置环境: 利用CSS选择器对页面进行解析 我们发现,我们所有的题目的回答的选项的标 ...

  3. 用Python实现问卷星自动填写(超详细!!!)

    用Python实现问卷星自动填写(超详细!!!) 前言 一.配置环境 1.1安装依赖 1.2安装驱动 二.实战处理 2.1.引入库函数 2.2.程序所需函数详解 (1)自定义单选函数 (2)自定义多选 ...

  4. Python实现问卷星自动填写和选择

    Python实现问卷星自动填写和选择 啊哈哈哈,我朋友叫我帮他填写问卷星,,我就直接写了个python脚本帮他一次性解决 全随机,全自动,一开始我用的是BP直接抓包发送,不过发送频率过快会让你验证,, ...

  5. Python实现问卷星调查问卷自动填写

    文章目录 前言 一.配置环境 1.1 下载依赖selenium 1.2 安装chrome驱动 1.3 引入库 二.简易版快速上手教程 1.自定义变量 2.自定以函数 3 主函数编写 三 逐步解析 1 ...

  6. python实现问卷星自动填写(可以跳过智能验证)

    最近有一个社会实践需要做问卷调查,突发奇想搞一个自动化脚本,省事省米 1 下载依赖selenium selenium是一款网页爬虫重要的工具. 2  安装chrome驱动 这里需要准备chrome浏览 ...

  7. python 实现问卷星自动填写多份

    问卷星的问卷填写 工具:burpsuit,python 问卷星亲测,可以用python的requests库对问卷访问填写.首先对访问的页面进行抓包,得到的header部分照抄到requests的hea ...

  8. 使用python实现问卷星自动答题功能——基础篇

    题主在学习的过程中,老是有人来让填问卷星,就觉得人填的很麻烦,于是就自己动手写了一个python脚本来实现自动填写问卷星 1.首先我们得学会使用python里面的一个库,selenium,这个库是用来 ...

  9. python自动化------问卷星刷问卷3.0版本

    接上,之前做的问卷星刷问卷的功能单一,每个题目只能选一个选项.现在的3.0版本功能增加了计数器(刷了几份问卷).多选项的选择.通过滑块验证.想要了解之前的相关信息请看下面的链接: 隔壁寝室刷问卷刷疯了 ...

最新文章

  1. D(背)P(包)专题
  2. mysql为什么每天0点就装东西_MySQL的详细安装教程
  3. 通过composer安装阿里大于接口扩展
  4. C++实现线段树求区间和-区间查询
  5. mybatis3 中 @Provider 的使用方式
  6. 【IOS】从android角度来实现(理解)IOS的UITableView
  7. mysql的权限管理
  8. Qemu(纯软实现)架构+KVM(基于kernel模拟硬件)原理(一)
  9. 51. yii csrf
  10. LM2903器件使用说明
  11. unity抗锯齿关闭
  12. mysql 文本类型的长度
  13. 鸿蒙系统桌面壁纸,华为鸿蒙桌面怎么设置好看
  14. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术
  15. labelImg安装所遇到的那些坑
  16. 乔布斯去世十年,粉丝哀叹苹果正失去昔日创新光环,但库克是更好领导者
  17. 只用div+CSS做淘宝手机端首页
  18. 点餐系统部署文档,java后台部署和微信点餐小程序的部署
  19. /proc/sysrq-trigger说明
  20. Realtek WiFi concurrent 模式介绍

热门文章

  1. python学习5(input函数)
  2. 开发模式和软件系统开发
  3. 计算机硬盘170gb,假的:《最终幻想15》PC推荐配置GTX1080Ti+170GB硬盘为误传
  4. uni-app - 设置最外层容器高度为100%
  5. E. Xenon's Attack on the Gangs,Codeforces Round #614 (Div. 2),树形dp
  6. 推荐这几个不错的提取伴奏在线软件给大家
  7. MongoDB设置账号密码
  8. Java时间操作类库—Joda-Time
  9. GitHub简单入门教程
  10. SRT视频字幕的解析与同步