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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python截图搜题_新手篇之实现Python自动搜题

發布時間:2023/12/10 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python截图搜题_新手篇之实现Python自动搜题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

承接前文關于Python自動搜題的介紹https://zhuanlan.zhihu.com/p/32828411,此篇面向新手小白進行解析,助你成功運行自動搜題的python程序。

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

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

1. 獲取手機直播答題界面截圖

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

2. 讀取截圖中的題目文字內容

這里我們在shell處將讀取到的題目內容輸出展示,同時也顯示代碼耗時:

3. 打開瀏覽器執行對題目搜索

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

B 下載相關功能包:由于我也算是剛入門的新手,基本各種功能模塊都是按著搜來的網上教程來的,所以大家只要能保證各個模塊都配好,最終程序跑通還是不難的。

執行代碼時,我用的是Windows10系統電腦,Python3.6,安卓手機數據線連電腦。

1. 無論什么手機、電腦系統,要做的是實現把手機屏幕內容實時顯示在電腦屏幕上,我是用的360手機助手的'演示'功能完成了對安卓和windows的連接,其余型號手機電腦可以自己搜一下來解決。

2. 接下來我們通過電腦截屏來實現截取屏幕上手機直播內容,由于Windows API獲取截圖的耗時極少,我們選擇了它。這里win10是不用額外下載東西,但可能Win7或其它版本的Windows會遇到找不到win32gui情況,可以參考win7下安裝python庫的若干問題 - CSDN博客來解決。關于windows通過python截屏函數,參考Python實現屏幕截圖的兩種方式 - weiyinfu - 博客園

3. 拿到題目的截圖后,要完成對題目中文字的讀取,就需要安裝PIL和pytesseract,同時還需要簡體中文識別的引擎包tesseract-ocr,相關安裝檢測參考鏈接:Python人工智能之圖片識別,Python3一行代碼實現圖片文字識別 - 邱石的專欄 - CSDN博客注意:安裝引擎包時最好按照鏈接中保存到C盤相似的路徑,我和朋友安到E盤都有報錯,也沒搞清具體原因,把文件剪切到C盤就解決了。

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

C 接下來是校準工作,調整代碼中w,h值來改變截圖大小,(20,140)處的兩個值改變截圖初始位置坐標,對應著你個人手機屏幕在電腦屏幕中的顯示位置,調整以上的值使截圖恰好落在手機屏上直播時顯示題目的位置。

D 代碼解析

def window_capture(filename):

#我針對自己手機的屏幕大小以及顯示題目的位置重新對其設置

w = 380saveBitMap.CreateCompatibleBitmap(mfcDC,w,h)

#獲取代碼執行開始時間

start = time.time()

#獲取截圖'haha.jpg'

for i in range(10):

window_capture('haha.jpg')

#解析截圖中的文本,注意這里text是'你 好 嗎'中間帶

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

#去除字符串中間的空格

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

#將題目內容作為搜索關鍵詞加到百度網址

#通過瀏覽器打開搜索結果界面

webbrowser.open(url)

#計算代碼執行時間

end = time.time()

E 直播實測希望當你看到這里時,能夠成功運行代碼咯~ 有問題可以留言,或者關注本公眾號~

獲取代碼,請添加本公眾號TEDxPY發送“自動搜題”~

希望能認識更多喜歡Python的朋友~!

總結

以上是生活随笔為你收集整理的python截图搜题_新手篇之实现Python自动搜题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。