翼度科技»论坛 编程开发 python 查看内容

用Python编写网页自动答题工具,满分轻松到手,你就是全班最靓的仔!

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
最近自动答题的外包很多,来给大家分享一下如何用Python来实现自动答题。
好了话不多说,我们开始操作。
首先你需要准备这些

环境使用
  1. Python 3.8 解释器
  2. Pycharm  编辑器
复制代码
 
模块使用
  1. import requests  ---> 数据请求模块 pip install requests
  2. import re
  3. from selenium import webdriver ---> 自动测试模块 pip install selenium==3.141.0  <指定版本安装>
复制代码
 
其它工具
谷歌浏览器
谷歌浏览器驱动
驱动安装教程:谷歌浏览器
自动答题工具: selenium 自动化测试模块
selenium --> 模拟人的行为去操作浏览器
正常答题流程

  • 打开浏览器
  • 访问网站
  • 浏览题目
  • 选择你认为正确答案
对于程序而言
3. 浏览题目

I. 获取所有题目以及答案
II. 答题过程中, 自动去获取本题的答案内容
每一个题目都有答案解析页面:
https://tiba.jsyks.com/Post/9e209.htm
https://tiba.jsyks.com/Post/d72d6.htm
https://tiba.jsyks.com/Post/6f533.htm
相当于页面ID --> 获取50个题目的ID 构建50个题目答案页面url地址
4. 选择你认为正确答案
把答案和选项进行对比, 一样进行选择
代码实战

模块
  1. # selenium 需要安装 pip install selenium==3.141.0
  2. # 文章不理解,我还录制了详细操作视频,跟源码一起打包好了
  3. # 都放在这个Q裙了:708525271
  4. from selenium import webdriver
  5. # 导入数据请求模块
  6. import requests
  7. # 导入正则表达式
  8. import re
复制代码
 
打开浏览器
  1. # <selenium.webdriver.chrome.webdriver.WebDriver (session="c55234aeab1503a9ab7ba8a4dd7bf457")>
  2. driver = webdriver.Chrome()
  3. # 访问网址
  4. driver.get('https://www.jsyks.com/kms-mnks')
  5. # 最大化浏览器
  6. driver.maximize_window()
复制代码
 
selenium 获取数据
  1. # 通过 CSS 选择器查找元素
  2. lis = driver.find_elements_by_css_selector('div.Exam ul li')
  3. # for循环遍历
  4. for li in lis:
  5.     # get_attribute 获取标签属性
  6.     answer_id = li.get_attribute('c')
复制代码
 
发送请求
  1.     # 请求链接
  2.     link = f'https://tiba.jsyks.com/Post/{answer_id}.htm'
  3.     # 模拟 伪装浏览器 <请求头>
  4.     headers = {
  5.         # User-Agent 用户代理 表示浏览器基本身份信息
  6.         'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
  7.     }
  8.     # 发送请求, 获取响应文本数据
  9.     html_data = requests.get(link, headers=headers).text
复制代码
 
解析数据
  1. answer = re.findall('br/>答案:<u>(.*?)</u>', html_data)[0]
复制代码
 
获取选项标签
  1. bs = li.find_elements_by_css_selector('b')
复制代码
 
for循环遍历
  1. for b in bs:
  2.     # 获取选项内容
  3.     choose = b.text
  4.     # 对于选项进行处理 判断选择是否正确
  5.     if choose == '正确':
  6.         # 重新赋值为对
  7.         choose = '对'
  8.     elif choose == '错误':
  9.         choose = '错'
  10.     # len内置函数, 统计元素个数
  11.     elif len(choose) > 2: # 判断当选项内容元素大于2的时候
  12.         # [0] 根据索引位置取值, 提取第一个元素
  13.         choose = choose[0]
  14.     for a in answer:
  15.         # 当选项和答案相等时候, 进行点击操作
  16.         if choose == a:
  17.             b.click()
复制代码
提交试卷
  1. driver.find_element_by_class_name('btn_JJ').click()
复制代码
 
至此,咱们就可以愉快的进行自动答题了,还是挺简单的。
好了,今天的分享就到这里结束了,咱们下次再见!

来源:https://www.cnblogs.com/hahaa/p/17547266.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具