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

简介: 某调查问卷,一共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月前
|
开发框架 前端开发 JavaScript
循序渐进BootstrapVue,开发公司门户网站(3)--- 结合邮件发送,收集用户反馈信息
循序渐进BootstrapVue,开发公司门户网站(3)--- 结合邮件发送,收集用户反馈信息
|
数据采集 Python
python 爬虫 佛山区域,爬取餐厅的商户联系人公开号码,实例脚本
python 爬虫 佛山区域,爬取餐厅的商户联系人公开号码,实例脚本
|
前端开发 Java 开发工具
使用Javaweb实现在线调查问卷系统
使用Javaweb实现在线调查问卷系统
310 0
使用Javaweb实现在线调查问卷系统
|
Java 调度 Spring
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(三)
接下来,就是来开发我们的投诉受理管理模块了…..我们来看看原型图与需求吧
211 0
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(三)
|
JSON 前端开发 JavaScript
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(二)
接下来,就是来开发我们的投诉受理管理模块了…..我们来看看原型图与需求吧
197 0
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(二)
|
Java 数据库连接 数据库
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(一)
接下来,就是来开发我们的投诉受理管理模块了…..我们来看看原型图与需求吧
218 0
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(一)
|
SQL JSON 前端开发
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(四)
接下来,就是来开发我们的投诉受理管理模块了…..我们来看看原型图与需求吧
238 0
纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】(四)
|
分布式计算 MaxCompute 开发工具
【文档小窍门】填写用户反馈的正确姿势
在使用产品帮助文档过程中,遇到问题了?更加困惑了?莫慌,手把手教你如何摆好填写用户反馈的正确姿势,助力文档更好地为您服务~~~
|
监控 安全
您的url被百度杀毒提示存在网址安全风险,故物料不宜推广的解决办法
春节刚过完,上班的第一天,公司网站被百度停止推广了,百度推广提示:您的url被百度杀毒提示存在网址安全风险,故物料不宜推广;若有异议,请进入百度杀毒申诉通道申诉。第一时间联系了当地百度公司客服,客服帮我们查看了下百度那面反馈的邮件后,说是由于我们网站内容被篡改,导致存在网址安全风险,因此百度推广不让上线,对于我们公司网站产品的推广带来了很大的影响,老板立即把我叫到了办公室。
2361 0
|
安全 数据安全/隐私保护
遇到百度网址安全中心提醒您该页面可能存在钓鱼欺诈信息的处理解决办法
2018年8月份初正值炎热酷暑的夏天,我们sine安全公司接到新客户的安全反映,说是他们公司网站首页标题被黑客篡改成赌博的内容,导致网站在百度搜索里红色风险提示,百度快照搜索关键词显示:百度网址安全中心提醒您:该页面可能存在钓鱼欺诈信息!而且网站在百度收录里,收录了许多赌博,博彩内容的百度快照,直接...
2477 0