標籤:而且 ref 配置 選擇 str window 第三方 手機螢幕 檔案夾
因為學校要求要刷一門叫《封裝世界》的網課,而課程裡有200多道選擇題,而且只能在手機完成,網頁版無法做題,而看視頻是不可能看視頻的,這輩子都不可能看...所以寫了幾行代碼來進行百度搜答案。
思路如下:
- 手機螢幕投影到電腦上;
- 並識別圖片文字;
- 調用百度來進行搜尋;
- 提取html關鍵字。
環境配置:python3.6、第三方庫:pyautogui、PIL、pytesseract、<a href="https://github.com/tesseract-ocr/tesseract">識別引擎tesseract-ocr</a>
要識別中文,ocr引擎要下載一個中文包<a href="https://github.com/tesseract-ocr/tesseract/wiki/Data-Files">chi_sim</a>放進Tesseract-OCR\tessdata裡面。安裝完ocr後還要配置一下調用路徑,在Python36\Lib\site-packages\pytesseract找到pytesseract.py(這是我的windows路徑),開啟在裡面添加一下路徑:
1 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY2 tesseract_cmd = ‘tesseract‘3 tesseract_cmd = ‘C:/Program Files (x86)/Tesseract-OCR/tesseract.exe‘4 img_mode = ‘RGB‘
然後用AirDroid或者Vysor、360手機小幫手之類的將手機的螢幕投影到電腦上,用滑鼠確定座標,代碼如下:
1 import pyautogui as pag2 x,y = pag.position()3 posStr = "position:"+str(x).rjust(4)+‘,‘+str(y).rjust(4)4 print(posStr)
要擷取兩個座標(開始座標和結束座標),然後利用擷取的座標運用如下代碼並調用ocr引擎識別(識別出來的字是每個用空格分開的,所以要去除字串中的空格),代碼如下:
1 from PIL import Image 2 from PIL import ImageGrab 3 import pytesseract 4 import webbrowser 5 6 pos = (0,245,425, 327) 7 cut_img = ImageGrab.grab(pos) 8 cut_img.save(‘C:/imgSave/1.jpg‘) #儲存到檔案夾中 9 print("screenshots sucess")10 11 text=pytesseract.image_to_string(Image.open(‘C:/imgSave/1.jpg‘),lang=‘chi_sim‘) #調用識別引擎識別12 text=text.replace(" ","") #去空格13 print(text)14 url = ‘http://www.baidu.com/s?wd=%s‘ % text #調用百度搜尋15 webbrowser.open(url)
最終因為搜出來的全是題庫,所以就沒有提取html關鍵字了,其實是懶。
python識別圖片文字