最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)考試自動答題的腳本分享

 更新時間:2023年03月17日 09:18:48   作者:木木子學(xué)python  
最近這段時間天氣正正好,不冷不熱,是學(xué)習(xí)考駕照的好時機(jī)。為了幫助大家能夠順利獲得駕照,小編為大家準(zhǔn)備了駕照考試的自動答題小程序,希望對大家有所幫助

導(dǎo)語

對于新手而言,掌握好方向盤的打法非常重要,關(guān)系到我們能否順利通過駕考,拿到駕照。而開車時方向盤又是最重要的,握好方向盤等于是給自己的安全上了保險。 

科目一考試為上機(jī)考試,100道題,題型為判斷題和單選題,以案例、圖片及動畫形式的題目為主,考試時間45分鐘,90分及以上過關(guān)。

最近這段時間天氣正正好,不冷不熱,是學(xué)習(xí)考駕照的好時機(jī)。想學(xué)的寶子,最好是現(xiàn)在這個季節(jié),要知道,當(dāng)年(咳咳咳...)也就是前年我學(xué)駕照的時候夏天曬的烏漆嘛黑的。

許多駕考學(xué)員們,雖說科二科三需要實體練車,但是科一科四都是理論知識點,那不得一次過。平常的話****我們可以利用碎片化的時間鞏固基礎(chǔ)知識, 爭取科科一次過!今天小編教大家一個小腳本啦——Python實現(xiàn)自動答題 價值 1000元 外包訂單項目案例。

一、準(zhǔn)備環(huán)境

1)運行環(huán)境 

 開發(fā)環(huán)境:

Python3、Pycharm社區(qū)版。

import requests  ---> 數(shù)據(jù)請求模塊 pip install requests  
import re
from selenium import webdriver ---> 自動測試模塊 pip install selenium==3.141.0  <指定版本安裝>。

谷歌瀏覽器 以及 谷歌驅(qū)動 <版本和瀏覽器版本相對應(yīng)> 環(huán)境沒有安裝的同學(xué), 可以去安裝。

 2)模塊安裝

第三方庫的安裝方式如下: 

一般安裝:pip install +模塊名 

鏡像源安裝:pip install -i pypi.douban.com/simple/+模塊名…

 (還有很多國內(nèi)鏡像源,這里是豆瓣的用習(xí)慣了,其他鏡像源可以去看下之前文章都有的)

二、代碼展示 

1)爬蟲實現(xiàn)思路

一. 數(shù)據(jù)來源分析 --> 通過瀏覽器 開發(fā)者工具 抓包分析    

1. 明確需求:        - 明確采集的網(wǎng)站是什么            

題目答案頁面: https://tiba.jsyks.com/Post/2c15b.htm

2.  分析這兩個數(shù)據(jù)怎么獲取    

數(shù)據(jù)來自于 --> 答案頁面 

第一題: https://tiba.jsyks.com/Post/2c15b.htm    

問題: 獲取1701道題目 --> 分析每個題目答案頁面URL構(gòu)成        

第一題: https://tiba.jsyks.com/Post/2c15b.htm        

第二題: https://tiba.jsyks.com/Post/8ac1a.htm       

 第三題: https://tiba.jsyks.com/Post/e97d7.htm    2c15b / 8ac1a / e97d7    

所以 只需要獲取所有答案頁面ID, 即可獲取所有題庫 。

2)自動答題主程序

# 導(dǎo)入自動化測試模塊 --> 重點 3.141.0 版本
from selenium import webdriver
# 導(dǎo)入pandas
import pandas as pd
# 導(dǎo)入正則
import re

df = pd.read_csv('題庫.csv')
key = []
value = []
# 獲取每一道題目
for i in df['Problem']:  # 問題作為鍵
    # 把題目添加到列表里面
    key.append(i)
# 獲取每一道題目答案
for j in df['Answer']: # 問題作為值
    # 把答案添加到列表里面
    value.append(j)

# 把兩個列表合并成字典
dic = dict(zip(key, value))

"""
1. 打開瀏覽器
    Chrome 瀏覽器 谷歌
    webdriver.Chrome('驅(qū)動路徑')
    I. 驅(qū)動選擇
        根據(jù)你自己瀏覽器版本, 選擇驅(qū)動版本, 最相近即可
        驅(qū)動只有32
    II. 驅(qū)動路徑寫法
        1. 不寫路徑
            - 驅(qū)動和你代碼在一起
            - 驅(qū)動和你python安裝目錄在一起
        2. 寫路徑 絕對路徑

"""
driver = webdriver.Chrome()
# 2. 訪問網(wǎng)站
driver.get('https://www.jsyks.com/kms-fzks')
driver.maximize_window()

"""
答題操作:
    1. 題庫 <獲取出來了>
        讀取csv文件, 把題目內(nèi)容以及答案讀取出來

1701道題,要讀1701次啊?
    可以把問題作為字典鍵, 答案作為字典值
    根據(jù)問題, 可以獲取答案

定位元素, 獲取數(shù)據(jù)內(nèi)容
"""

print(dic)
for page in range(50):
    Questions = driver.find_element_by_css_selector('#ExamTit').text
    # \d+ 匹配數(shù)字 獲取題目
    Question = re.findall('\d+. (.*)', Questions)[0]
    answer = dic[Question]
    # 多選題, 答案肯定大于1
    if len(answer) == 1:
        # 判斷答案內(nèi)容 選擇選項
        if answer == '對':
            # 定位對元素, 進(jìn)行點擊操作
            driver.find_element_by_css_selector('#TX1 #btnDa11').click()
        elif answer == '錯':
            driver.find_element_by_css_selector('#TX1 #btnDa12').click()
        elif answer == 'A':
            driver.find_element_by_css_selector('#TX2 #btnDa21').click()
        elif answer == 'B':
            driver.find_element_by_css_selector('#TX2 #btnDa22').click()
        elif answer == 'C':
            driver.find_element_by_css_selector('#TX2 #btnDa23').click()
        elif answer == 'D':
            driver.find_element_by_css_selector('#TX2 #btnDa24').click()

        # 點擊下一題
        driver.find_element_by_css_selector('#actArea #btnNext2').click()
    elif len(answer) > 1:
        # 多選
        for x in answer:
            if x == 'A':
                driver.find_element_by_css_selector('#TX2 #btnDa21').click()
            elif x == 'B':
                driver.find_element_by_css_selector('#TX2 #btnDa22').click()
            elif x == 'C':
                driver.find_element_by_css_selector('#TX2 #btnDa23').click()
            elif x == 'D':
                driver.find_element_by_css_selector('#TX2 #btnDa24').click()

        driver.find_element_by_css_selector('#actArea #btnNext2').click()


driver.find_element_by_css_selector('#actArea #btnNext3').click()
driver.find_element_by_css_selector('#Tip_Msg span input:nth-child(1)').click()

3)題庫主程序

import requests
import re
import csv
import concurrent.futures
import parsel

def AnswerID():
    f = open('答案ID.txt', encoding='utf-8')
    answer_id_list = [answer_id for answer_id in f.read().split(',')]
    return answer_id_list


def GetResponse(html_url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    html_data = requests.get(url=html_url, headers=headers).text
    return html_data


def GetContent(AnswerID):
    AnswerUrl = f'https://tiba.jsyks.com/Post/{AnswerID}.htm'
    html_data = GetResponse(html_url=AnswerUrl)
    selector = parsel.Selector(html_data)
    problem = selector.css('#question a::text').get()
    answer = selector.css('#question h1 b::text').getall()
    if len(answer) == 0:
        answer = selector.css('#question h1 u::text').get()

    AnswerDict = {
        'Problem': problem,
        'Answer': answer,
    }
    return AnswerDict


def main(page):
    AnswerDict = GetContent(AnswerID=page)
    csv_writer.writerow(AnswerDict)
    print(AnswerDict)


if __name__ == '__main__':
    # GetContent(AnswerID='8502e')
    answer_id_list = AnswerID()
    f = open('科目四題庫.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=['Problem', 'Answer'])
    csv_writer.writeheader()
    exe = concurrent.futures.ThreadPoolExecutor(max_workers=7)
    for answer_id in answer_id_list:
        exe.submit(main, answer_id)
    exe.shutdown()

三、效果展示

1)自動答題

?2)自動上交試卷

很多人問為什么只有96分沒得100分?

因為題庫下載的題目答案是錯誤的修正之后就可以啦!

以上就是Python實現(xiàn)考試自動答題的腳本分享的詳細(xì)內(nèi)容,更多關(guān)于Python考試自動答題的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Django?url.py?path?name同一app下路由別名定義

    Django?url.py?path?name同一app下路由別名定義

    這篇文章主要為大家介紹了Django?url.py?path?name同一app下路由別名定義詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • python+Matplotlib?繪制帶置信區(qū)間的折線圖

    python+Matplotlib?繪制帶置信區(qū)間的折線圖

    這篇文章主要介紹了python繪制帶置信區(qū)間的折線圖,在本文中,我們將使用?numpy?模塊生成隨機(jī)數(shù)據(jù),并使用?matplotlib?庫實現(xiàn)數(shù)據(jù)可視化,需要的朋友可以參考下
    2023-05-05
  • Python Queue模塊詳細(xì)介紹及實例

    Python Queue模塊詳細(xì)介紹及實例

    這篇文章主要介紹了Python Queue模塊詳細(xì)介紹及實例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 使用Python制作一個簡易的遠(yuǎn)控終端

    使用Python制作一個簡易的遠(yuǎn)控終端

    這篇文章主要為大家詳細(xì)介紹了如何使用Python語言制作一個簡易的遠(yuǎn)控終端,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的可以了解一下
    2023-04-04
  • Django基于客戶端下載文件實現(xiàn)方法

    Django基于客戶端下載文件實現(xiàn)方法

    這篇文章主要介紹了Django基于客戶端下載文件實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python用5行代碼實現(xiàn)批量摳圖的示例代碼

    Python用5行代碼實現(xiàn)批量摳圖的示例代碼

    這篇文章主要介紹了Python用5行代碼實現(xiàn)批量摳圖的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python基于socket實現(xiàn)的UDP及TCP通訊功能示例

    python基于socket實現(xiàn)的UDP及TCP通訊功能示例

    這篇文章主要介紹了python基于socket實現(xiàn)的UDP及TCP通訊功能,結(jié)合實例形式分析了基于Python socket模塊的UDP及TCP通信相關(guān)客戶端、服務(wù)器端實現(xiàn)技巧,需要的朋友可以參考下
    2019-11-11
  • 利用Python?實現(xiàn)圖片轉(zhuǎn)字符畫

    利用Python?實現(xiàn)圖片轉(zhuǎn)字符畫

    這篇文章主要介紹了利用Python?實現(xiàn)圖片轉(zhuǎn)字符畫,要將圖片轉(zhuǎn)字符畫,需要先定義一個字符集,用來和灰度值做映射,將圖片每個像素的?RGB?值轉(zhuǎn)換為一個灰度值,將其對應(yīng)的字符輸出就得到字符畫
    2022-06-06
  • python寫的本地WIFI密碼查看器的具體代碼

    python寫的本地WIFI密碼查看器的具體代碼

    本文主要分享一個本地wifi密碼查看器,用python實現(xiàn)的,代碼簡單易懂,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • python實現(xiàn)切割url得到域名、協(xié)議、主機(jī)名等各個字段的例子

    python實現(xiàn)切割url得到域名、協(xié)議、主機(jī)名等各個字段的例子

    今天小編就為大家分享一篇python實現(xiàn)切割url得到域名、協(xié)議、主機(jī)名等各個字段的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論

昌图县| 常熟市| 色达县| 峨眉山市| 封开县| 民乐县| 八宿县| 胶南市| 乌拉特后旗| 天峨县| 永定县| 常德市| 华蓥市| 台东市| 庆城县| 南和县| 门源| 平利县| 绍兴市| 凤庆县| 乌兰察布市| 龙岩市| 红桥区| 东兰县| 渑池县| 乌恰县| 东阿县| 买车| 托克托县| 册亨县| 万盛区| 扎囊县| 子长县| 保定市| 繁昌县| 黑山县| 绥德县| 天峻县| 庆城县| 华宁县| 郴州市|