最近写了个自动填写调查的问卷的简单爬虫

简介: 某调查问卷,一共17题,每题5选项,第一项总是最好的评价,这样省的我判定哪一项是最好的了。问卷的最后是填写投票人的个人信息。代码from selenium import webdriverimport timeimport xlrdbrowser = webdriver.

某调查问卷,一共17题,每题5选项,第一项总是最好的评价,这样省的我判定哪一项是最好的了。问卷的最后是填写投票人的个人信息。

代码

from selenium import webdriver
import time
import xlrd

browser = webdriver.Firefox(executable_path=r'geckodriver')
browser.implicitly_wait(10)

def _choose():
    browser.get("网址") 
    for i in range(1,18): #选择每一题的第一个选项(最好的评价)
        browser.find_element_by_id("Q%d_rbt1"%i).click()

def _rdinfo(num):
        #从文件的第二行开始读取,目前没有加入读取完就删除。列表中好像有个方法叫读取后删除
    name = sheet.cell(num,0).value
    phone = sheet.cell(num,1).value
    return name,phone

def _wtinfo(name,phone):
    email = phone+'@189.cn'
    browser.find_element_by_id("userName").send_keys(name)
    browser.find_element_by_id("phone").send_keys(phone)
    browser.find_element_by_id("email").send_keys(email)
    time.sleep(8) #给我手动输入验证码的时间
    browser.find_element_by_id("SubmitBtn").click()

if __name__ == '__main__':  
    _choose() 
    data = xlrd.open_workbook('文件路径')
    sheet = data.sheets()[0]
    num = 1
    for i in range(1,13):
        name,phone = _rdinfo(num) #返回值赋值给两个变量
        _wtinfo(name,phone)
        num += 1
        time.sleep(5)  #每个投票间隔5s,然而事实证明一个IP只能投3个
        _choose()
        print ('第%d个投票'%num)
    print ('完成!')

不足之处

三级标题

  • 问卷的最后是个人信息,我采用遍历Excel内容的方式。中建执行过程 中断了两次,这样我就不知道遍历到哪里了,只能看print的信息。后面仔细想想应该采用list读取后删除的方法。等中断的时候再把剩余的list写入到文件。
list.pop(obj=list[-1])     #移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
  • selenium提供的xpath查找方法非常方便,可是一定要注意是否在同一个frame或者window。我因为这个而选不到元素费了半天劲。

  • 程序并没有完全自动化,提交问卷之前有个验证码,需要我手动输入。因此如果能加个识别验证码的包就好了,GitHub上 好像一大堆。需要学习。

目录
相关文章
|
4月前
|
数据采集 文字识别 数据安全/隐私保护
轻松抓取:用 requests 库处理企业招聘信息中的联系方式
本文详细介绍如何利用Python的`requests`库结合代理IP技术,突破Boss直聘的登录验证与反爬虫机制,抓取企业招聘信息中的联系方式。文章首先阐述了Boss直聘数据抓取面临的挑战,随后介绍了代理IP轮换、登录会话保持及请求头伪装等关键技术。通过一个完整的示例代码,展示了从配置代理、模拟登录到解析HTML获取联系方式的具体步骤。此方法不仅适用于Boss直聘,还可扩展至其他需登录权限的网站抓取任务。
315 0
轻松抓取:用 requests 库处理企业招聘信息中的联系方式
|
4月前
|
IDE 搜索推荐 开发工具
被动信息搜集:复现MS08067实验室邮件爬取 原创
被动信息搜集:复现MS08067实验室邮件爬取 原创
34 0
|
8月前
|
数据挖掘
提高调查有效性:问卷设计技巧与常见错误避免
设计合格的调查问卷需明确目标、构建清晰结构、编写简明问题并预测试与修改。目标决定数据收集的方向,结构保证逻辑连贯,问题应避免引导性,使用通俗语言。预测试能优化问卷,数据分析则提炼出有价值信息,支持决策。注意问题类型的选择,如封闭式和开放式,确保数据的有效收集。
629 4
LIS系统源码:涵盖实验室的全部管理流程,包括从检验申请、标本采集、实验检测、报告发布等
1)与HIS系统无缝对接,共享缴费信息,生成检验申请单。 2)通过条形码、手工添加、电子申请单等多种方式录入样本。 3)自动接收检验结果,并根据患者的标本、年龄、性别等判断结果异常状态。 4)危急值提示,批量审核、打印,质控样本等功能协助医生更好的开展检验工作。 5)操作多台设备,自由切换,和操作单台设备一样。
146 0
|
机器学习/深度学习 数据可视化 数据挖掘
模拟生成问卷数据
模拟生成问卷数据
416 0
|
XML 搜索推荐 前端开发
SEO诊断报告都包含哪些内容?专业优化公司SEO诊断分析报告分享
SEO诊断通过系统的检测项逐一展开检查,避免出现遗漏,是网站SEO优化深入挖掘、诊断网站、并发现问题的最佳方法之一。接下来优化猩小编为你剖析分享专业优化公司SEO诊断分析报告的内容,一起来看看吧。
122 0
SEO诊断报告都包含哪些内容?专业优化公司SEO诊断分析报告分享
|
前端开发 Java 开发工具
使用Javaweb实现在线调查问卷系统
使用Javaweb实现在线调查问卷系统
334 0
使用Javaweb实现在线调查问卷系统
论坛舆情管理办法
尽管近年来论坛的影响力在下降,但是仍然是舆情聚集地之一。那么,针对论坛舆情处理应该怎么做呢?
论坛舆情管理办法
|
SQL 前端开发 数据可视化
传智健康day02 预约管理-检查项管理
传智健康day02 预约管理-检查项管理
传智健康day02 预约管理-检查项管理
|
SQL JSON 前端开发
传智健康day02 预约管理-检查项管理2
传智健康day02 预约管理-检查项管理2
传智健康day02 预约管理-检查项管理2