日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python自动答题免费_直播答题?Python助你自动搜题之新手篇!

發(fā)布時(shí)間:2023/12/15 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动答题免费_直播答题?Python助你自动搜题之新手篇! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

承接前文關(guān)于Python自動(dòng)搜題的介紹https://zhuanlan.zhihu.com/p/32828411,此篇面向新手小白進(jìn)行解析,助你成功運(yùn)行自動(dòng)搜題的python程序。

A部分是介紹思路,可以先跳到B部分去下載包,裝中文包時(shí)耗時(shí)蠻長,可以再來細(xì)看A部分~

A 思路:如前文所述,代碼大致分三步。

1. 獲取手機(jī)直播答題界面截圖

注意:我們這里只關(guān)注題目,不管選項(xiàng),通過搜索題目內(nèi)容獲取輔助線索,所以截圖我們只定位在顯示題目的位置就足夠了,這樣圖片中讀取文字的速度快精度也高一些,例如中午1點(diǎn)直播答題測試時(shí)截圖第六題:

2. 讀取截圖中的題目文字內(nèi)容

這里我們?cè)趕hell處將讀取到的題目內(nèi)容輸出展示,同時(shí)也顯示代碼耗時(shí):

3. 打開瀏覽器執(zhí)行對(duì)題目搜索

單論每一步,實(shí)現(xiàn)方法有很多,但考慮到時(shí)間,我們只選取耗時(shí)盡量少的方法來實(shí)現(xiàn)各部分功能。經(jīng)過1月11日中午1點(diǎn)百萬英雄直播答題時(shí)的測試,網(wǎng)絡(luò)良好時(shí),搜完結(jié)果剩余答題時(shí)間仍有5秒,完全達(dá)到預(yù)期效果(但由于中午醉心于搜索、錄影,忘了答題了,一心不可二用啊T.T)

B 下載相關(guān)功能包:由于我也算是剛?cè)腴T的新手,基本各種功能模塊都是按著搜來的網(wǎng)上教程來的,所以大家只要能保證各個(gè)模塊都配好,最終程序跑通還是不難的。

執(zhí)行代碼時(shí),我用的是Windows10系統(tǒng)電腦,Python3.6,安卓手機(jī)數(shù)據(jù)線連電腦。

1. 無論什么手機(jī)、電腦系統(tǒng),要做的是實(shí)現(xiàn)把手機(jī)屏幕內(nèi)容實(shí)時(shí)顯示在電腦屏幕上,我是用的360手機(jī)助手的'演示'功能完成了對(duì)安卓和windows的連接,其余型號(hào)手機(jī)電腦可以自己搜一下來解決。

2. 接下來我們通過電腦截屏來實(shí)現(xiàn)截取屏幕上手機(jī)直播內(nèi)容,由于Windows API獲取截圖的耗時(shí)極少,我們選擇了它。由于Python沒有自帶訪問windows系統(tǒng)API的庫,需要下載pywin32庫來實(shí)現(xiàn),pip 安裝的命令是: pip install pypiwin32(注意安裝時(shí)是pypiwin32,不是pywin32)。這里關(guān)于windows通過python截屏函數(shù),參考Python實(shí)現(xiàn)屏幕截圖的兩種方式 - weiyinfu - 博客園

3. 拿到題目的截圖后,要完成對(duì)題目中文字的讀取,就需要安裝PIL和pytesseract,同時(shí)還需要簡體中文識(shí)別的引擎包tesseract-ocr,相關(guān)安裝檢測參考鏈接:Python人工智能之圖片識(shí)別,Python3一行代碼實(shí)現(xiàn)圖片文字識(shí)別 - 邱石的專欄 - CSDN博客 注意:安裝引擎包時(shí)最好按照鏈接中保存到C盤相似的路徑,我和朋友安到E盤都有報(bào)錯(cuò),也沒搞清具體原因,把文件剪切到C盤就解決了。另外,請(qǐng)官方下載最新版或者通過我這網(wǎng)盤分享的4.0.0版本的,鏈接中的版本有點(diǎn)低,準(zhǔn)確率也較差https://pan.baidu.com/s/1bpVvjUB

4. 打開瀏覽器的時(shí)webbrowser模塊,自帶不用下載。

C 接下來是校準(zhǔn)工作,調(diào)整代碼中w,h值來改變截圖大小,(20,140)處的兩個(gè)值改變截圖初始位置坐標(biāo),對(duì)應(yīng)著你個(gè)人手機(jī)屏幕在電腦屏幕中的顯示位置,調(diào)整以上的值使截圖恰好落在手機(jī)屏上直播時(shí)顯示題目的位置。

D 代碼解析

def window_capture(filename):

hwnd = 0

hwndDC = win32gui.GetWindowDC(hwnd)

mfcDC = win32ui.CreateDCFromHandle(hwndDC)

saveDC = mfcDC.CreateCompatibleDC()

saveBitMap = win32ui.CreateBitmap()

MoniterDev = win32api.EnumDisplayMonitors(None,None)

#下面的#w=...和#h=...都是鏈接中源代碼對(duì)其賦值,獲取的是電腦截屏的寬和高

#w = MoniterDev[0][2][2]

#h = MoniterDev[0][2][3]

#我針對(duì)自己手機(jī)的屏幕大小以及顯示題目的位置重新對(duì)其設(shè)置

w = 380

h = 150

saveBitMap.CreateCompatibleBitmap(mfcDC,w,h)

saveDC.SelectObject(saveBitMap)

#here的正下方(20,140)是截圖的起點(diǎn)坐標(biāo)來定位截圖位置,這些根據(jù)個(gè)人情況調(diào)整

#--------------------------------here--------------------

saveDC.BitBlt((0,0),(w,h),mfcDC,(20,140),win32con.SRCCOPY)

saveBitMap.SaveBitmapFile(saveDC,filename)

#獲取開始執(zhí)行代碼的時(shí)間

start = time.time()

#獲取截圖為'haha.jpg'

window_capture('haha.jpg')

#識(shí)別截圖中的簡體中文

text=pytesseract.image_to_string(Image.open('haha.jpg'),lang='chi_sim')

#識(shí)別的字符串是'你 好 嗎'帶空格的格式,這里去除這些空格生成新的字符串list即題目內(nèi)容

new_text =''.join(text.split())

print(new_text)

#將題目內(nèi)容作為搜索關(guān)鍵詞加到百度搜索的網(wǎng)址

url = 'http://www.baidu.com/s?wd=%s' % new_text

#打開瀏覽器獲取搜索結(jié)果

webbrowser.open(url)

#獲取代碼結(jié)束時(shí)的時(shí)間

end = time.time()

#計(jì)算代碼執(zhí)行時(shí)間,搜索結(jié)果出現(xiàn)的時(shí)間還要取決于網(wǎng)絡(luò)狀況。。。

print(end-start)

E 直播答題實(shí)測:

文中提到的第六題:

https://www.zhihu.com/video/934868742274408448

代碼功能介紹:

https://www.zhihu.com/video/935150865682132992

成功的第一題:

https://www.zhihu.com/video/935149969132904448

忘記答題的第二題:

https://www.zhihu.com/video/935150275946283008

徹底GG的第三題:

https://www.zhihu.com/video/935151057739374592

希望當(dāng)你看到這里時(shí),能夠成功運(yùn)行代碼咯~ 有問題可以留言,或者關(guān)注公眾號(hào)TEDxPY留言,希望能認(rèn)識(shí)更多喜歡Python的朋友~!

補(bǔ)充:

1.本代碼只是簡化百度搜索題目的過程,美其名自動(dòng)搜題,只作答題參考,有優(yōu)化的想法歡迎來建議。

2.代碼運(yùn)行后,文件夾中會(huì)生成截圖圖片,可以根據(jù)圖片內(nèi)容去調(diào)整代碼中關(guān)于截圖位置、大小的設(shè)置,百萬英雄的題目是白底黑字,只要截圖準(zhǔn)確,一般精確度都很高的。

3.為了方便答題時(shí)運(yùn)行代碼,可以用python自帶的IDLE打開py文件置于屏幕下方,出題目時(shí)在py文件上按F5運(yùn)行即可跳出瀏覽器界面;同時(shí)提前打開好瀏覽器,調(diào)整好位置,避免答題時(shí)跳出的窗口擋住手機(jī)屏幕位置影響截圖。

4.關(guān)于win32模塊,謝謝評(píng)論提醒,并不是因?yàn)閣in10系統(tǒng)自帶,而是我之前運(yùn)行其它程序時(shí)預(yù)裝過pypiwin32,所以如果找不到win32的模塊,可以pip install pypiwin32

5.關(guān)于OCR版本,版本低的話可能準(zhǔn)確度比較差,這里提供4.0.0版本的安裝文件,別用鏈接里的版本了https://pan.baidu.com/s/1bpVvjUB 抱歉哈

總結(jié)

以上是生活随笔為你收集整理的python自动答题免费_直播答题?Python助你自动搜题之新手篇!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。