最近自動答題的外包很多,來給大家分享一下如何用Python來實作自動答題,
好了話不多說,我們開始操作,
首先你需要準備這些
環境使用
Python 3.8 解釋器
Pycharm 編輯器
模塊使用
import requests ---> 資料請求模塊 pip install requests import re 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. 選擇你認為正確答案
把答案和選項進行對比, 一樣進行選擇
代碼實戰
模塊
# selenium 需要安裝 pip install selenium==3.141.0 # 文章不理解,我還錄制了詳細操作視頻,跟原始碼一起打包好了 # 都放在這個Q裙了:708525271 from selenium import webdriver # 匯入資料請求模塊 import requests # 匯入正則運算式 import re
打開瀏覽器
# <selenium.webdriver.chrome.webdriver.WebDriver (session="c55234aeab1503a9ab7ba8a4dd7bf457")> driver = webdriver.Chrome() # 訪問網址 driver.get('https://www.jsyks.com/kms-mnks') # 最大化瀏覽器 driver.maximize_window()
selenium 獲取資料
# 通過 CSS 選擇器查找元素 lis = driver.find_elements_by_css_selector('div.Exam ul li') # for回圈遍歷 for li in lis: # get_attribute 獲取標簽屬性 answer_id = li.get_attribute('c')
發送請求
# 請求鏈接 link = f'https://tiba.jsyks.com/Post/{answer_id}.htm' # 模擬 偽裝瀏覽器 <請求頭> headers = { # User-Agent 用戶代理 表示瀏覽器基本身份資訊 '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' } # 發送請求, 獲取回應文本資料 html_data = https://www.cnblogs.com/hahaa/archive/2023/07/12/requests.get(link, headers=headers).text
決議資料
answer = re.findall('br/>答案:<u>(.*?)</u>', html_data)[0]
獲取選項標簽
bs = li.find_elements_by_css_selector('b')
for回圈遍歷
for b in bs: # 獲取選項內容 choose = b.text # 對于選項進行處理 判斷選擇是否正確 if choose == '正確': # 重新賦值為對 choose = '對' elif choose == '錯誤': choose = '錯' # len內置函式, 統計元素個數 elif len(choose) > 2: # 判斷當選項內容元素大于2的時候 # [0] 根據索引位置取值, 提取第一個元素 choose = choose[0] for a in answer: # 當選項和答案相等時候, 進行點擊操作 if choose == a: b.click()
提交試卷
driver.find_element_by_class_name('btn_JJ').click()
至此,咱們就可以愉快的進行自動答題了,還是挺簡單的,
好了,今天的分享就到這里結束了,咱們下次再見!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/557102.html
標籤:其他
上一篇:Java入門12(多執行緒)
下一篇:返回列表