吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 148|回复: 1
上一主题 下一主题
收起左侧

[Python 原创] 基于drissionpage的问卷星答题程序

[复制链接]
跳转到指定楼层
楼主
icer233 发表于 2024-11-23 21:08 回帖奖励
上次使用selenium做了一个问卷星的自动答题程序:https://www.52pojie.cn/thread-1971878-1-1.html
大家给了很多建议,这次恰逢又要作新的问卷星,我试着用drissionpage写了自动答题脚本,和大家分享。
这次较为简单,题目都是固定的。


纯填空题:
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
from DrissionPage import Chromium
import time
import os
import configparser as cp

def complete_exam(url, name, stnum):
    # 创建浏览器对象
    tab = Chromium().latest_tab
    tab.get(url)

    # 读取答案文件
    with open('daan0.txt', 'r', encoding='utf-8') as file:
        answers = file.readlines()

    # 个人信息
    name_ipt = tab.ele('@id=q1')
    name_ipt.input(name)
    stnum_ipt = tab.ele('@id=q2')
    stnum_ipt.input(stnum)

    fieldset = tab.eles('@class=field ui-field-contain')
    qnum = fieldset.__len__()
    # 遍历题目并填写答案
    for i in range(1, qnum-1):
        answer = answers[i - 1].strip()
        print(answer)
        qg = tab.ele(f'@id=div{i+2}')
        ipt = qg.ele('@class=textCont')
        ipt.input(answer)
    
    # 点击提交按钮
    submit_button = tab.ele('@id=ctlNext')
    submit_button.click()

    # 等待提交完成
    time.sleep(5)
    os.system('pause')
    # 关闭浏览器
    tab.close()

if __name__ == "__main__":
    config_path = './config.ini'
    inifile = cp.ConfigParser()
    inifile.read(config_path, 'UTF-8')
    url = inifile['db']['url']
    name = inifile['db']['name']
    stnum = inifile['db']['stnum'][1:]
    
    complete_exam(url, name, stnum)


纯选择题:
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
from DrissionPage import Chromium
import time
import os
import configparser as cp
    

if __name__ == "__main__":
    config_path = './config.ini'
    inifile = cp.ConfigParser()
    inifile.read(config_path, 'UTF-8')
    url = inifile['db']['url']
    name = inifile['db']['name']
    stnum = inifile['db']['stnum'][1:]
    
    # 创建浏览器对象
    tab = Chromium().latest_tab
    tab.get(url)

    # 读取答案文件
    with open('daan1.txt', 'r', encoding='utf-8') as file:
        answers = file.readlines()

    # 个人信息
    name_ipt = tab.ele('@id=q1')
    name_ipt.input(name)
    stnum_ipt = tab.ele('@id=q2')
    stnum_ipt.input(stnum)

    fieldset = tab.eles('@class=field ui-field-contain')
    qnum = fieldset.__len__()


    # 遍历题目并填写答案
    for i in range(1, qnum-1):   
        answer = int(answers[i - 1].strip())
        qo = tab.ele(f'@id=div{i+2}')
        qo = qo.ele('@class=ui-controlgroup column1')
        try:
            options = qo.eles('@class=ui-radio')
            options[answer-1].click()
        except:
            pass
    
    # 点击提交按钮
    submit_button = tab.ele('@id=ctlNext')
    submit_button.click()

    # 等待提交完成
    time.sleep(5)
    os.system('pause')
    # 关闭浏览器
    tab.close()

免费评分

参与人数 3吾爱币 +2 热心值 +2 收起 理由
s15s + 1 用心讨论,共获提升!
Listentomusic + 1 + 1 我很赞同!
yangyang3917 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
Listentomusic 发表于 2024-11-23 22:21
感谢分享,学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 07:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表