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

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