小白学Python

系统 142 0

本人财务狗一枚,编程基础为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

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论