用Python快速搜尋答題類app問題

來源:互聯網
上載者:User

標籤:www.   手機   debug   home   png   pil   div   時間   自己   

1.前言

最近答題類app比較火爆,由於題目廣並且時間短,自己打字搜尋是不太可能的了,於是想自己做一個自動搜尋的Python指令碼

該Python指令碼的原理是用adb工具將手機傳到電腦上進行文字識別,然後百度搜尋該問題,開啟瀏覽器時間還是比較慢的

2.文字識別庫pytesseract2.1 pytesseract庫的安裝

這個庫的安裝特別容易,在命令列中輸入

pip install pytesseract

即可安裝

2.2 tesseract ocr引擎

tesseract ocr引擎是一個開源的強大引擎,安裝Windows然後通過相關變數設定即可使用

2.3 image_to_string函數

該函數為pytesseract庫的方法,將圖片文本轉換為文字

from PIL import Imageimport pytesseractquestion_text = pytesseract.image_to_string(question_img, lang='chi_sim').replace(' ','')

上述為基礎用法,並且將空格替換掉

3.adb工具3.1簡介

adb全名Android Debug Bridge,通過該工具,可以在電腦端的命令列與安裝手機進行互動,前提是手機開啟USB調試

adb有很多功能,它可以類比螢幕觸擊,之前火熱的跳一跳輔助正是利用該原理進行操作的

3.2python代碼中使用adb

python代碼中使用adb shell很簡單

import osdef pull_screenshot():    os.system('adb shell screencap -p /sdcard/screenshot.png')    os.system('adb pull /sdcard/screenshot.png')

這樣操作便可以類比命令列輸入將手機端發送至指令碼目錄

4.完整代碼
from PIL import Imageimport pytesseractimport timeimport osimport webbrowserdef pull_screenshot():    os.system('adb shell screencap -p /sdcard/screenshot.png')    os.system('adb pull /sdcard/screenshot.png')def main():    pull_screenshot()    img = Image.open("./screenshot.png")    question_img = img.crop((65,350,1019,621))    question_text = pytesseract.image_to_string(question_img, lang='chi_sim').replace(' ','')    webbrowser.open("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=baiduhome_pg&wd="+question_text)if __name__ == '__main__':    main()

使用之後發現耗時還是比較久的,在識別1-2s後才能開啟瀏覽器進行搜尋,然後我們再找答案的話就可能時間到了

於是改進可以使用爬蟲,選定搜尋結果的相關網頁進行關鍵詞的搜尋,進行答案的排查搜尋

用Python快速搜尋答題類app問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.