博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最近写了个自动填写调查的问卷的简单爬虫
阅读量:6570 次
发布时间:2019-06-24

本文共 1516 字,大约阅读时间需要 5 分钟。

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

代码

from selenium import webdriverimport timeimport xlrdbrowser = 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,phonedef _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上 好像一大堆。需要学习。

转载于:https://www.cnblogs.com/aubucuo/p/votespider.html

你可能感兴趣的文章
js随笔
查看>>
子元素绝对定位absolute后,自动撑开宽度
查看>>
【权值分块】bzoj1503 [NOI2004]郁闷的出纳员
查看>>
【枚举】【二分答案】【分块答案】【BFS】【最大流】【Dinic】bzoj1189 [HNOI2007]紧急疏散evacuate...
查看>>
期末大作业
查看>>
ThreadLocal
查看>>
第一次作业-准备篇
查看>>
cnzz统计代码引起的Bad Request - Request Too Long
查看>>
MinGW安装与使用简介
查看>>
Sublime Text 3 遇到的一些小坑的解决方法
查看>>
JSP之9大对象
查看>>
sql 递归查询
查看>>
KMP C++
查看>>
HDU1506 Largest Rectangle in a Histogram(算竞进阶习题)
查看>>
HTTP响应状态码
查看>>
crushmap磁盘智能分组
查看>>
《算法导论》读书笔记--第三章 函数的增长
查看>>
《利用python进行数据分析》读书笔记--第八章 绘图和可视化
查看>>
栈的操作
查看>>
Flask 备注一(单元测试,Debugger, Logger)
查看>>