又是一学期一度的填问卷时期,但是求爷爷告奶奶也不会收集到太多的。所以,作为自动化专业的我就要想一种方法自动填问卷,这样不就短时间内可以“收集”到很多很多的问卷了。

首先选择开发语言:python,据说这不仅仅是一门语言,还是一个非常有效的自动化办公工具。python环境的安装可以自行百度。

首先我们需要做一下准备工作

第一步、安装依赖库

selenium:自动化web测试工具,所以我们就拿它自动化测试我们的问卷喽,安装方法也很简单。

pip install selenium

第二步、安装 相关驱动

如果是谷歌浏览器就是点击这里连接

https://npm.taobao.org/mirrors/chromedriver/

如果是火狐浏览器就是点击这里连接

https://github.com/mozilla/geckodriver/releases

下载完成之后把它放在你的那个工程目录下就行了,像这样

最后就是准备如何获取网页元素的工作了

元素位置的描述用的是一中叫xPath的语言,如果每一个选项的位置都知道了,那么在然python自动去点击它不就行了?找这个路径用的是xPath Finder这个插件,在火狐浏览器中长这样

怎么下载?在工具管理中直接打xPath Finder就行。

准备工作做完了之后,就正式开始程序的编写了。

首先,我们需要获取选项的位置信息。

以我的问卷为例。地址

https://www.wjx.cn/jq/51119308.aspx

第一步输入网址进入界面

第二步点开xPath Finder

第三步点击第一道题的第一个选项的位置便可以在左下角看到。

其中我们需要的就是这个

html/body/div[2]/div[1]/div[2]/div[1]/div/div[1]/div[2]/div[2]/fieldset/div[1]/div[2]/ul/li[1]/a

多点几个就会发现有规律

最后的li[]是控制选项选哪个,fieldset/div[]这个是控制选择题号,那么我们通过随机数函数生成一个一到四的选项,然后在一条一条的填不就行了?

如果都是问卷星的话,可以省略上述的步骤因为这些选项的位置信息是一样的,按照规则改就行。

最后一步就是写程序了

首先引入相应的包

import timeimport randomfrom selenium import webdriverfrom selenium.webdriver.firefox.options import Options

然后就开始用python自动填写了

selenium这个工具非常好用,在python下也十分简单

举个例子

browser = webdriver.Firefox() #创建一个火狐浏览器的对象browser.get('https://www.wjx.cn/jq/51119308.aspx') #输入你想要测试的地址#下面就是输入操作,找到相应元素的位置然后点击它browser.find_element_by_xpath(            "/html/body/div[2]/div[1]/div[2]/div[1]/div/div[1]/div[2]/div[2]/fieldset/div[1]/div[2]/ul/li[%s]/a"% str(                random.randint(1,2))).click()#随机生成一个一到二的随机数然后将其填入最后browser.quit() #退出游览器

这只是一个简单的示例,详细的可以从以下下载

链接:https://pan.baidu.com/s/1xyogRHGj312nY3XAylN8jw

提取码:3xgs

欢迎关注我的博客

【记录】一个自动投票的小程序(python实现)相关推荐

  1. python饮料购买_Python写的一个自动售饮料小程序!

    写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...

  2. 用python编写一个掷骰子的小程序

    摘要: 编写了一个掷骰子的程序,主要通过pygame模块实现了以下几点功能:1.每次点击开始键时,骰子都会转动起来.2.每次开始后点击停止键时,骰子停止并且随机停在1-6的某一个数字上.3.按下结束键 ...

  3. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例

    Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...

  4. 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例

    用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29

  5. 用Python写一个模拟qq聊天小程序的代码实例

    前言 今天小编就为大家分享一篇关于用Python写一个模拟qq聊天小程序的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Python 超简单的聊天 ...

  6. python美元汇率兑换程序代码_还可以这样玩?用Python完成一个在线汇率转换小程序...

    原标题:还可以这样玩?用Python完成一个在线汇率转换小程序 大家好,小数在这里给大家拜个早年啦 今天给大家分享的是用Python完成一个在线汇率转换小程序,是基于一个持续更新的汇率网站实现的,让我 ...

  7. 用python编写一个处理报文的小程序

    最近用python编写了一个处理报文的小程序,最后保存成.txt格式. 主要内容非常简单,介绍如下: 1.报文内容如下所示,比较乱,因为要输入到matalab中进行仿真验证,因此,需要将里面的'\n' ...

  8. 沐风:做一个会自动赚钱的小程序

    当下互联网最火的莫过于小程序了,小程序具有很多天生的优势: 一.扎根于微信生态,拥微信10亿级的海量用户可挖掘. 二.用户界面和流畅度体验,可媲美原生APP. 三.开发周期短,成本低,成本相对原生AP ...

  9. 小程序云开发从前端到后台实战记录,开发一个完整功能的小程序

    小程序云开发从前端到后台,开发一个完整功能的小程序 一.编程基本知识要求 有vue 或wpf经验者很好理解 有mongodb经验者很好理解云后台 二.理解微信体系 微信有三个平台 1.开放平台 2.公 ...

  10. 如何写一个自动投票工具

    当然,自动投票这个违反了正常竞争,不提倡,这里只就技术问题做个探讨. 投票服务器一般的验证条件: [list] [*]IP地址不能重复 [*]Cookie验证 [*]验证码验证 [/list] 一个自 ...

最新文章

  1. boost program_options
  2. ARM QT实现多点触摸【转】
  3. SSM-SpringMVC-16:SpringMVC中小论注解式开发之访问方式篇
  4. 手动绑定数据到DatList并实现编辑,删除,取消···
  5. 四十六、MongoDB数据库学习
  6. Statement和PreparedStatement之间的区别(转)
  7. 启动Eclipse时,错误:WorkSpace Unavailable
  8. 游戏筑基之两个变量交换值与三个变量交换值的比较(C语言)
  9. 数字的格式化c语言课程设计,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  10. StreamSets实战之路(十五)-实战篇- 数据采集与处理
  11. java后台截图_Java+Selenium实现后台截图网页,可运行在树莓派上
  12. html在线比对工具,在线文本对比工具(mergely示例)
  13. linux下redis常用命令
  14. 七步学习法 —— 如何高效学习一项技能
  15. 2020-11-10大众点评字体反爬抓取信息
  16. 02.数学建模的步骤
  17. 用freepy一键生成中美GDP季度对比柱状图
  18. 【汤家凤考研数学手稿】第四章 不定积分(就找原函数,为定积分莱布尼茨公式铺垫)
  19. 笔记本电脑连接wifi显示无网络访问权限怎么办?
  20. IObit Uninstaller 10Pro BD

热门文章

  1. string类的深拷贝和浅拷贝
  2. Python程序员关于爬虫的一些常见面试题
  3. redis 附近的人_Redis怎么实现查找附近的人,请看特殊数据类型Geospatial
  4. 【总结】1334- JS中Object的keys是无序的吗
  5. 武音硕士研究生《计算机音乐作曲》培训,武汉音乐学院2013年硕士研究生招生计算机音乐作曲科目考试大纲及参考书目...
  6. jQuery.ajax 使用点滴
  7. 架构系列---百度分布式唯一ID生成器UidGenerator解析
  8. python项目-Python 的练手项目有哪些值得推荐?
  9. AspectJ in Action 第2版 中文版 简明的内容
  10. b标签、Strong标签、h1标签的区别以及使用