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

简介: 某调查问卷,一共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上 好像一大堆。需要学习。

目录
相关文章
|
消息中间件 Kafka 程序员
kafka的Docker镜像使用说明(wurstmeister/kafka)
wurstmeister/kafka是镜像市场上很受欢迎的一个kafka镜像,今天来聊聊它的多种用法
6548 0
kafka的Docker镜像使用说明(wurstmeister/kafka)
|
SpringCloudAlibaba 负载均衡 算法
SpringCloudAliBaba篇之Ribbon负载均衡器:让你的应用从容应对高并发
SpringCloudAliBaba篇之Ribbon负载均衡器:让你的应用从容应对高并发
618 0
|
10月前
|
自然语言处理 监控 关系型数据库
MySQL模糊匹配技巧:无需ES的高效实现
在数据库应用中,模糊匹配是一个常见的需求,尤其是在不引入Elasticsearch(ES)等外部搜索引擎的情况下。MySQL作为强大的关系型数据库,提供了多种实现模糊匹配的方法。本文将分享如何在MySQL中实现模糊匹配,并提供五大步骤和十个实战案例,帮助你提升查询效率和性能。
1190 1
|
Kubernetes 应用服务中间件 nginx
基于容器化的Web服务器管理
【8月更文第28天】随着云原生技术的发展,容器化已经成为部署和管理应用程序的标准方式之一。Docker 和 Kubernetes 等工具提供了强大的容器管理和编排能力,使得开发者能够轻松地部署、扩展和维护 Web 服务器。本文将详细介绍如何使用 Docker 和 Kubernetes 实现 Web 服务器的容器化部署,并提供详细的步骤和代码示例。
457 1
|
供应链 监控 算法
ERP系统中的库存优化与成本控制解析
【7月更文挑战第25天】 ERP系统中的库存优化与成本控制解析
1142 2
|
11月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
1983 1
|
存储 云安全 安全
云端数据加密实践
【7月更文挑战第12天】云端数据加密是保障云端数据安全的重要手段。通过选择合适的加密方式、加强加密密钥管理、实施静态与动态数据加密、采用加密信息检索技术和应用层加密组件等措施,可以有效地保护云端数据的安全。未来,随着技术的不断进步和应用需求的多样化,云端数据加密技术将继续发挥其重要作用,为各种应用场景提供强大的安全保障。
|
人工智能 文字识别 API
20行代码教你如何批量提取图片中文字
大家好,我是志斌~ 之前志斌在考研的时候遇到了一个问题,就是要将图片中的文字给提取出来,当时是J哥帮忙搞出来的,现在已经考完研了,也学会了提取方式,现在来给大家分享一下。
1131 0
20行代码教你如何批量提取图片中文字
|
分布式计算 DataWorks 监控
Dataphin常见问题之生产环境任务无法下线如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
存储 缓存 搜索推荐
苏宁易购商品详情API:电商实时数据
在当前的电商行业中,数据是最为宝贵的资源之一。如何获取实时、准确的数据,对于电商业务的运营和优化至关重要。作为中国领先的电商平台之一,苏宁易购提供了丰富的API接口,其中包括商品详情API,以便第三方开发者能够获取苏宁易购内的商品详细信息。本文将深入探讨苏宁易购商品详情API在电商行业中的重要性,以及如何通过该API实现实时数据获取。