最近自動答題的外包很多,來給大家分享一下如何用Python來實現自動答題。 好了話不多說,我們開始操作。 首先你需要準備這些 環境使用 Python 3.8 解釋器 Pycharm 編輯器 模塊使用 import requests > 數據請求模塊 pip install requests impo ...
最近自動答題的外包很多,來給大家分享一下如何用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 = 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()
至此,咱們就可以愉快的進行自動答題了,還是挺簡單的。
好了,今天的分享就到這裡結束了,咱們下次再見!