Python Selenium 问卷星自动填写 更快速修改代码以便应用

使用Python Selenium库自动化填写问卷星的代码示例,包括单选、多选及填空题。通过xpath定位,random.choice()随机选择答案,简化代码修改。文中提到通过函数封装,提高代码复用性,并讨论了遇到验证码的处理策略。
摘要由CSDN通过智能技术生成

Python自动填写问卷星

在前段时间自己编写了一段Selenium的问卷星自动填写的代码(当然是不包含识别验证码的工序的),在应用的过程中,发现了代码修改比较麻烦,每个click控件的选项上都需要添加一次xpath路径,在选择题较少的情况下,情况还好,但是选择题的数目和选项一旦增多就会造成代码修改的复杂程度。下面给出一个表做一个形象的说明

数量 添加xpath次数
10道题 每道题4个选项 40
30道题 每道题4个选项 120
30道题 每道题8个选项 240

添加如此多次的xpath路径,会造成不必要的麻烦,xpath路径具有一定的规律性,比如说我这篇问卷

  1. 第一道题的A选项://*[@id=“divquestion1”]/ul/li[1]/a
  2. 第一道题的B选项://*[@id=“divquestion1”]/ul/li[2]/a
  3. 第二道题的A选项://*[@id=“divquestion2”]/ul/li[1]/a

你们是否已经发现了规律呢?当然我们还是重申一下需要用到的几个函数吧

需要用到的一些知识
  • random.choice(),括号里面可以放一个列表,这样可以随机输出列表当中的某个元素
  • xpath定位网页元素 driver.find_element_by_xpath
  • 对元素进行操作,有点击click和填入send_keys
  • 字符串的拼接 ‘’//*[@id=“divquestion’ + str(m) + '”]/ul/li[’ + str(q) + ‘]/a’’
  • 函数体的设计以及if-else选择语句

一、问卷形式

Ⅰ、只有单选题的问卷

企业员工满意度调查问卷

在这里插入图片描述

from selenium import webdriver
import random


# //*[@id="divquestion1"]/ul/li[2]/a
def monomial_choice(m, n):  # m为题号 n为选项数
    q = random.choice(list(range(1, n + 1)))
    xpath = '//*[@id="divquestion' + str(m) + '"]/ul/li[' + str(q) + ']/a'
    driver.find_element_by_xpath(xpath).click()


for i in range(100):
    driver = webdriver.Chrome()
    driver.get('https://www.wjx.cn/jq/88552774.aspx')
    for m in range(1, 11):
        if m == 2:
            monomial_choice(m, 4)  # 第二题四个选项
        else:
            monomial_choice(m, 5)  # 除了第二题都有五个选项
    driver.find_element_by_xpath
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值