Python自動(dòng)更新期刊價(jià)格

每年要跟郵局訂購(gòu)一批期刊,由于大部分期刊的價(jià)格每年都會(huì)有小幅度的上漲,每年在比對(duì)價(jià)格的時(shí)候弄的頭昏眼花,既然咱入了Python的坑看锉,那何不讓Python來(lái)幫忙做這些事呢。開(kāi)始嘗試吧塔鳍!

大致思路:

(1)通過(guò)文字識(shí)別錄入最新的期刊名和價(jià)格伯铣,保存在csv文件中。

(2)通過(guò)比對(duì)往年的期刊名轮纫,匹配成功的腔寡,更新最新的期刊價(jià)格,匹配失敗的掌唾,輸出具體期刊名放前,提示“未找到該期刊”。

下面開(kāi)始具體操作:

(1)文字識(shí)別錄入數(shù)據(jù)

首先糯彬,我用手機(jī)把紙質(zhì)報(bào)刊訂閱清單一張張拍照凭语,然后拷到電腦里。在這里情连,拍照有個(gè)技巧叽粹,可以用一張白紙蓋住览效,然后把需要識(shí)別信息的地方挖個(gè)洞却舀,這樣就可以事先過(guò)濾掉大部分的無(wú)用信息,為后面寫(xiě)代碼提供了遍歷锤灿。如圖:

image

圖片拷到電腦后挽拔,給圖片重新命名為'1.jpg'、‘2.jpg’...但校,這樣做也是為了方便后面寫(xiě)代碼螃诅。如果圖片很多可以用圖片重命名軟件批量重命名。

重命名好圖片后就要考慮開(kāi)始文字識(shí)別了状囱,我采用的是百度的文字識(shí)別API术裸,網(wǎng)址:http://ai.baidu.com/tech/ocr。為什么用它亭枷?因?yàn)楹?jiǎn)單易用袭艺,識(shí)別準(zhǔn)確。

建一個(gè)文件getOcrData.py叨粘,將識(shí)別的數(shù)據(jù)保存在csv文件中猾编。具體代碼如下:

from aip import AipOcr
import re,csv
import openpyxl

APP_ID = '14830***'
API_KEY = 'zZwpvc6H5z9qGic8g5AK****'
SECRET_KEY = 'FsWu8msV8U8zIpEHXACuZWC5GT1*****'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)    #連接baidu文字識(shí)別API
f = open('qikan.csv','wt',newline='',encoding='UTF-8')
writer = csv.writer(f)

pic_urls = ['pic/{}.jpg'.format(str(i)) for i in range(1,31)]    #構(gòu)造待識(shí)別圖片url列表

title = []
price = []

for pic_url in pic_urls:
    item = open(pic_url, 'rb')   #以二進(jìn)制讀取圖片
    img = item.read()

    message = client.basicGeneral(img)

    for i in message.get('words_result'):
        word = i.get('words')
        
        if word[-1].isdigit(): #判斷是否是價(jià)格瘤睹,這里偷懶判斷最后1位是否為數(shù)字來(lái)判定
            price.append(word)
        else:
            title.append(word)

    data = dict(zip(title,price))   #將識(shí)別的數(shù)據(jù)以題名為鍵,以價(jià)格為值保存在字典中
print('共識(shí)別{}條數(shù)據(jù)\n'.format(len(data)))

for title, price in data.items():
    writer.writerow((title,price))

f.close()    

保存文件答倡,運(yùn)行轰传,得到如下圖結(jié)果:

image

(2)首次嘗試更新期刊價(jià)格

有了期刊的價(jià)格后,下面就要更新期刊價(jià)格了瘪撇,為什么說(shuō)是首次嘗試呢获茬?因?yàn)榘俣任淖肿R(shí)別雖說(shuō)準(zhǔn)確率較高,但也達(dá)不到100%倔既,總歸有點(diǎn)小問(wèn)題锦茁,第一次嘗試更新期刊價(jià)格的目的就是要找到哪些地方還存在問(wèn)題,然后去手動(dòng)修改一下叉存。新建updatePrice.py码俩,更新期刊價(jià)格的代碼如下:

import re,csv
import openpyxl

wb = openpyxl.load_workbook('test.xlsx')    #加載excel工作簿
sheet = wb.active   #激活主工作表

data = {}
csv_file = csv.reader(open('qikan.csv', 'r'))
for li in csv_file:
    data[li[0]] = li[1]     #讀取csv,并將數(shù)據(jù)轉(zhuǎn)為字典格式
    
for row_num in range(117, sheet.max_row):    #遍歷excel
    name = sheet.cell(row=row_num, column=4).value
    try:
        if name in data:
            sheet.cell(row=row_num,column=7).value = data[name] #更新數(shù)據(jù)
            print('已更新         ' + name)
        else:
            print('未找到 '+ name)
    except TypeError:
        pass

wb.save('test.xlsx')

代碼很簡(jiǎn)單歼捏,寫(xiě)好后保存稿存,運(yùn)行,發(fā)現(xiàn)有不少未找到的期刊瞳秽,手工打開(kāi)excel文件和csv文件瓣履,找出未找到的期刊名,如果是識(shí)別有問(wèn)題练俐,則手動(dòng)改回正確的袖迎,全部改好后,保存文件腺晾,再次運(yùn)行一遍updatePrice.py燕锥,搞定!

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悯蝉,一起剝皮案震驚了整個(gè)濱河市归形,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼻由,老刑警劉巖暇榴,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蕉世,居然都是意外死亡蔼紧,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)狠轻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)奸例,“玉大人偷遗,你說(shuō)我怎么就攤上這事颤芬〔疲” “怎么了纺裁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)菩貌。 經(jīng)常有香客問(wèn)我卢佣,道長(zhǎng),這世上最難降的妖魔是什么箭阶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任虚茶,我火速辦了婚禮,結(jié)果婚禮上仇参,老公的妹妹穿的比我還像新娘嘹叫。我一直安慰自己,他們只是感情好诈乒,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布罩扇。 她就那樣靜靜地躺著,像睡著了一般怕磨。 火紅的嫁衣襯著肌膚如雪喂饥。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天肠鲫,我揣著相機(jī)與錄音员帮,去河邊找鬼。 笑死导饲,一個(gè)胖子當(dāng)著我的面吹牛捞高,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渣锦,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼硝岗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了泡挺?” 一聲冷哼從身側(cè)響起辈讶,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤命浴,失蹤者是張志新(化名)和其女友劉穎娄猫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體生闲,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媳溺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碍讯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悬蔽。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捉兴,靈堂內(nèi)的尸體忽然破棺而出蝎困,到底是詐尸還是另有隱情录语,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布禾乘,位于F島的核電站澎埠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏始藕。R本人自食惡果不足惜蒲稳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伍派。 院中可真熱鬧江耀,春花似錦、人聲如沸诉植。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晾腔。三九已至系宫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間建车,已是汗流浹背扩借。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缤至,地道東北人潮罪。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像领斥,于是被迫代替她去往敵國(guó)和親嫉到。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 點(diǎn)我查看本文集的說(shuō)明及目錄月洛。 本項(xiàng)目相關(guān)內(nèi)容包括: 實(shí)現(xiàn)過(guò)程: CH7 創(chuàng)建在線商店 CH8 管理支付和訂單 CH...
    學(xué)以致用123閱讀 3,627評(píng)論 0 6
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)何恶、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,120評(píng)論 4 61
  • 今天是母親節(jié)嚼黔,我一直在等待细层,在渴望,你像往日一樣刷牙洗臉唬涧,沒(méi)有我想象的那樣疫赎,跑過(guò)來(lái)主動(dòng)跟我說(shuō)祝媽媽節(jié)日快樂(lè)。我也像...
    育女心經(jīng)閱讀 302評(píng)論 0 0
  • 我是一只有思想的風(fēng)箏 飛過(guò)天空碎节,劃過(guò)彩云 那是一直想做的事 我是一只有追求的風(fēng)箏 掙脫束縛捧搞,離開(kāi)平庸 那是我畢生的...
    夏目岳七閱讀 290評(píng)論 2 10
  • 2018.02.16 編號(hào)28 日精進(jìn)624天 今日感悟: 1得人恩果千年記,和自己相識(shí)的人都是自己的恩人! 2親...
    宇宙之愛(ài)黃昊貴閱讀 153評(píng)論 0 0