本人財(cái)務(wù)狗一枚,編程基礎(chǔ)為0。因?yàn)樘嵘ぷ餍实闹饔^愿望(備注:懶),準(zhǔn)備開(kāi)始學(xué)點(diǎn)python。因?yàn)槠綍r(shí)比較忙(事多),可能更新的非常慢,估計(jì)2019年11月開(kāi)始正式學(xué)習(xí)更新。給自己立個(gè)flag,主要學(xué)習(xí)內(nèi)容兩個(gè):
(1)提升辦公效率
(2)pandas庫(kù)學(xué)習(xí)
day1 基礎(chǔ)軟件安裝
安裝anaconda\pycharm\cmder
軟件介紹:Pycharm是集成開(kāi)發(fā)環(huán)境(操作平臺(tái)),Anaconda是集成環(huán)境管理器(庫(kù)包),cmder 好用的程序操作命令
參考文檔:
Python入門:Anaconda和Pycharm的安裝和配置
[https://www.cnblogs.com/yuxuefeng/articles/9235431.html]
cmder配置指南
[https://www.jianshu.com/p/979db1a96f6d]
day2 配置微信發(fā)票機(jī)器人實(shí)例
特別感謝原作者:李達(dá)西,原來(lái)的ocr模塊使用的票小秘功能,跟達(dá)西大牛溝通后幫我免費(fèi)改成百度ai,良心好人啊!
(0)pip install 安裝對(duì)應(yīng)庫(kù)包(wxpy)
(1)下載github上編譯好的發(fā)票機(jī)器人實(shí)例
[https://github.com/dashleee/WechatInvoiceParser]
(2)配置百度AI,獲取AK\SK
這塊設(shè)置可以參考:百度API使用入門教程:[http://ai.baidu.com/forum/topic/show/867951]
ps:里面有坑,用的庫(kù)urllib2 在python3里面已經(jīng)取消了。獲取access_token 看我下面代碼。
(3)獲取access_token
import urllib.request
import json
ak='輸入AK'
sk='輸入sk'
# client_id 為官網(wǎng)獲取的AK, client_secret 為官網(wǎng)獲取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(ak,sk)
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
content = response.read()
json_all=json.loads(content)
access_token=json_all['access_token']
print(access_token)
(4)部分代碼優(yōu)化
a.wechat模塊-wxpy庫(kù):?jiǎn)?dòng)緩存功能,避免短時(shí)間經(jīng)常掃碼
self.bot = Bot()
修改為
self.bot = Bot(console_qr=True, cache_path=True)
b.通過(guò)利用Supervisor監(jiān)控保持機(jī)器人長(zhǎng)時(shí)間登陸
安裝
supervisor是一個(gè)python寫成的程序,因此可以簡(jiǎn)單地通過(guò)pip來(lái)進(jìn)行安裝:
pip install supervisor
調(diào)整 wxpy設(shè)置
如果想使用supervisor的重啟功能,我們必須開(kāi)啟wxpy的緩存功能以儲(chǔ)存登錄狀態(tài),具體操作在登錄時(shí)增加cache_path參數(shù):
bot = Bot(cache_path=True)
你也可以自由選擇將緩存存在什么文件中,以免多個(gè)機(jī)器人沖突
配置
官方提供了一個(gè)默認(rèn)的配置文件,你可以使用這條命令輸出到你放置機(jī)器人的文件夾中:
echo_supervisord_conf > supervisord.conf
在這個(gè)supervisord.conf后面,我們?cè)僮芳訉?duì)微信機(jī)器人程序的控制
[program:bot]
command=python ./wxbot.py ;執(zhí)行機(jī)器人文件,請(qǐng)修改文件名
process_name=%(program_name)s
autostart=true ; 程序是否隨supervisor啟動(dòng)而啟動(dòng)
autorestart=true ;程序停止時(shí),是否自動(dòng)重啟
startsecs=10
啟動(dòng)和控制
從命令啟動(dòng)supervisor只需要一句:
supervisord -c supervisord.conf
-c用以指定配置文件,也就是我們剛剛編寫的文件。
使用supervisor還可以方便的開(kāi)始、重啟和停止程序:
supervisorctl start bot # 開(kāi)始程序,bot 是剛剛填寫的程序名
supervisorctl restart bot # 重啟程序
supervisorctl stop bot # 停止程序
使用supervisor查看自己的程序運(yùn)行狀態(tài)
supervisorctl status # 查看狀態(tài)
因此,只要將wxpy的緩存打開(kāi),并且使用supervisor進(jìn)行自動(dòng)重啟,我們就可以獲得一個(gè)長(zhǎng)時(shí)間保持登錄的自動(dòng)回復(fù)機(jī)器人啦!
(5)部分代碼屏蔽
pushover 模塊因?yàn)樾枰召M(fèi),秉著不給錢的態(tài)度(窮,沒(méi)經(jīng)費(fèi)支持)這塊代碼我全部注釋掉了。
(6)后續(xù)可優(yōu)化點(diǎn)
增加發(fā)票類別識(shí)別,自動(dòng)識(shí)別該發(fā)票類別并回復(fù)是否屬于可用發(fā)票。
(7)異常說(shuō)明
a.wxpy 掃碼登錄微信報(bào)錯(cuò) KeyError: 'pass_ticket'
wxpy基于wxpy庫(kù),需要調(diào)用網(wǎng)頁(yè)版本的微信。如果是新號(hào),無(wú)法登陸網(wǎng)頁(yè)版本微信號(hào)。所以會(huì)調(diào)用失敗。無(wú)解決方案。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
