【微信讀書(shū)每日一答輔助小程序】使用python對(duì)每日一答問(wèn)題進(jìn)行識(shí)別锰霜,并將結(jié)果保存到剪貼板以便搜索。

??在騰訊收購(gòu)閱文之后桐早,微信讀書(shū)的無(wú)限卡已經(jīng)不能免費(fèi)看書(shū)了锈遥,這時(shí)白嫖微信讀書(shū)每日一答的書(shū)幣成了不錯(cuò)的選擇纫事。嚴(yán)重偏科又手速垃圾的我在等級(jí)升高下逐漸力不從心,于是突然有了這個(gè)想法所灸,寫(xiě)個(gè)能快速識(shí)別問(wèn)題文字的小程序,因?yàn)楝F(xiàn)有的識(shí)別文字等程序(如QQ)會(huì)出現(xiàn)識(shí)別速度慢炫七、手動(dòng)框選識(shí)別區(qū)域的問(wèn)題爬立。

1 環(huán)境準(zhǔn)備

系統(tǒng):WIN10
python version:3.6
所需要的庫(kù):pyautogui,keyboard,PILLOW,baidu-aip

2 獲取屏幕位置

??既然是對(duì)屏幕制定區(qū)域進(jìn)行截圖,必須要知道該區(qū)域在屏幕上的坐標(biāo)万哪,因此需要使用pyautogui大三方庫(kù)侠驯,windows上不需要安裝其他依賴(lài)模塊。

分辨率為 1920 × 1080 的計(jì)算機(jī)屏幕上的坐標(biāo)
import pyautogui

print('Press Ctrl-C to quit.')
try:
    while True:
        # Get and print the mouse coordinates.
        x, y = pyautogui.position()
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(positionStr, end='')
    print('\b' * len(positionStr), end='', flush=True)
except KeyboardInterrupt:
    #按ctrl+c結(jié)束程序
    print('\nDone.')

3 指定區(qū)域屏幕截圖

??需要使用PILLOW第三方庫(kù)奕巍,安裝方法自行百度吟策。實(shí)現(xiàn)的操作是對(duì)制定區(qū)域截圖,并保存到目標(biāo)文件夾中的止,之后以二進(jìn)制只讀方式打開(kāi)該圖片檩坚,返回其結(jié)果。每次保存圖片會(huì)自動(dòng)覆蓋之前的圖片诅福,具體代碼如下:

from PIL import ImageGrab

def get_file_content():
    #左上坐標(biāo)點(diǎn)(x1,y1)匾委,右上坐標(biāo)點(diǎn)(x2,y2),box = (x1,y1,x2,y2)
    box = (1450,267,1850,365)
    #截圖
    image = ImageGrab.grab(box)
    while True:
        try:
            #保存圖片
            filepath = "C:/Users/MAIBENBEN/Desktop/1.jpg"
            image.save(filepath)
            break
        except:
            continue

4 文字識(shí)別

??在此需要用到百度AI開(kāi)放平臺(tái)文字識(shí)別技術(shù),因此需要注冊(cè)百度智能云賬號(hào)/百度賬號(hào)氓润,注冊(cè)過(guò)程十分簡(jiǎn)單赂乐,一分鐘完成,具體步驟可以參考咖气。
??為了使用該功能挨措,需要安裝baidu-aip第三方庫(kù),很小巧且好用的一個(gè)庫(kù)崩溪,識(shí)別速度很快浅役,2秒左右。具體代碼如下:

from aip import AipOcr

def word_identify():
    #輸入自己的應(yīng)用的信息
    APP_ID = '***'
    API_KEY = '***'
    SECRET_KEY = '***'
    client= AipOcr(APP_ID, API_KEY, SECRET_KEY)
    #讀取圖片信息悯舟,返回二進(jìn)制結(jié)果
    img = get_file_content()
    #返回識(shí)別結(jié)果
    res = client.basicGeneral(img)
    print(res)
    #返回識(shí)別結(jié)果中的文字信息
    return ''.join([word['words'] for word in res['words_result']])

5 按鍵識(shí)別并保存到剪貼板

??實(shí)現(xiàn)功能為担租,當(dāng)程序運(yùn)行后,按下某鍵就進(jìn)行截圖和文字識(shí)別操作抵怎,按下某鍵退出程序奋救,按其他鍵無(wú)反應(yīng),需要用到keyboard第三方庫(kù)反惕。還需將識(shí)別結(jié)果保存到剪貼板中尝艘,需要使用第三方庫(kù)pyperclip。程序運(yùn)行后按b鍵進(jìn)行截圖識(shí)別姿染,按q鍵結(jié)束程序背亥,具體代碼如下:

import keyboard
import pyperclip

while True:
    try:
        print('Press and release a shortcut(b): ')
    ?    ?#捕捉按鍵狀態(tài)
        shortcut = keyboard.read_key()
        print('Shortcut selected:', shortcut)
        if shortcut == 'b':
            words = word_identify()
            print(words)
    ?    ?    ?#識(shí)別結(jié)果保存到剪貼板
            pyperclip.copy(words)
        elif shortcut == 'q':
            break
        else:
            continue
    except KeyboardInterrupt:
        #防止出現(xiàn)按ctrl+c結(jié)束程序的情況
        print("\n")
        continue

第一次用簡(jiǎn)書(shū)投稿秒际,若代碼有錯(cuò)誤可在評(píng)論區(qū)交流。
最后狡汉,祝你白嫖開(kāi)心娄徊!
PS:之后有時(shí)間可能會(huì)做如下更新:
??1.使用selenium模塊自動(dòng)打開(kāi)瀏覽器進(jìn)行搜索。
??2.對(duì)問(wèn)題進(jìn)行精細(xì)化處理盾戴,使其更便于搜索寄锐。
??3.自動(dòng)捕獲窗口坐標(biāo)位置,在此基礎(chǔ)上進(jìn)行截圖操作尖啡。
??4.添加題庫(kù)橄仆,從題庫(kù)對(duì)比尋找答案,沒(méi)有則自行搜索衅斩。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盆顾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子畏梆,更是在濱河造成了極大的恐慌您宪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件具温,死亡現(xiàn)場(chǎng)離奇詭異蚕涤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)铣猩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)揖铜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人达皿,你說(shuō)我怎么就攤上這事天吓。” “怎么了峦椰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵龄寞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我汤功,道長(zhǎng)物邑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任滔金,我火速辦了婚禮色解,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘餐茵。我一直安慰自己科阎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布忿族。 她就那樣靜靜地躺著锣笨,像睡著了一般蝌矛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上错英,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天入撒,我揣著相機(jī)與錄音,去河邊找鬼走趋。 笑死衅金,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的簿煌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鉴吹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼姨伟!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起豆励,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤夺荒,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后良蒸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體技扼,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年嫩痰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剿吻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡串纺,死狀恐怖丽旅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纺棺,我是刑警寧澤榄笙,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站祷蝌,受9級(jí)特大地震影響茅撞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巨朦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一米丘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罪郊,春花似錦蠕蚜、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)腺毫。三九已至,卻和暖如春挣柬,著一層夾襖步出監(jiān)牢的瞬間潮酒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工邪蛔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留急黎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓侧到,卻偏偏與公主長(zhǎng)得像勃教,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匠抗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355