Python数据从入门到实践

Python实现微信查天气+火车+飞机+快递!!!

2020-03-03  本文已影响0人  Sunflow007
13.jpg

前言:

前面介绍了Python—itchat实现微信自动回复Python—itchat下载拼接微信好友头像图,现在,来进一步地实现更高级点的功能——查天气+火车+飞机+快递!!!当然,前提是基于之前几篇文章写过的【查询系】爬虫,这里只是把他们集中在一起了,通过微信itchat的自动回复功能,实现回复关键字,返回自动查询结果的效果!

主程序是:

weChat.py,主程序依赖weather、package、airlineTicket、trainTicket这几个.py文件(他们分别对应查天气、快递、机票、火车票的功能)。

源码:

已上传至github:Flowingsun007/littleSpiders 喜欢的盆友麻烦点个赞+star!谢谢!


【原理】

主程序weChat.py通过itchat库实现微信好友聊天,自动回复。2.通过好友发来的相应关键词的消息(TEXT类型)调用相应的爬虫代码运行(查天气/火车/快递/飞机),然后将查询的结果自动回复。

【主要功能】:

1.对微信好友发送过来的各种类型消息进行相应识别和处理、并自动返回相应消息。

TEXT类型的消息:

如关键词:快递/火车/飞机/天气,自动回复相应内容并返回查询结果!

其他类型的消息:

微信除了文字类型(TEXT)的消息,还有PICTURE图片, MAP地点, CARD名片, NOTE通知, SHARING分享, RECORDING语音, ATTACHMENT附件, VIDEO视频。对于这些类型,程序里也做了相应的处理。

a.MAP即地图类型的消息,自动回复地点名称,经纬度信息;

b.CARD即名片类型,无特别处理,直接返回msg['content'];

c.SHARING即分享类型,自动回复分享的链接;

d.NOTE即通知类型,如果是红包,则回复“谢谢红包打赏????...”否则msg['content'];

e.PICTURE图片、RECORDING语音、ATTACHMENT附件、VIDEO视频类型支持自动下载到电脑,同时将文件转发给“文件传输助手”;

2.消息自动回复功能,支持好友自助退订/订阅

如果每句话都自动回复,可能时间长了别人就会嫌烦了,这时无需手动,只要好友输入TDD即可成功退订,以后都会消息免打扰(不会自动回复),想重新开启也很简单,回复KTT即可!程序每次运行时自动读取.txt中的文件,将已经退订自动回复的好友信息加载到TDlist中,做到对于在TDlist中的好友,不调用itchat.send()方法进行自动回复,起到了消息免打扰的功能!

回复TDD,则好友动态加入TDlist列表,并将好友写入.txt中的文件中;

回复KTT,则好友从TDlist移除,更新后的TDlist重新写入到.txt中保存。

下面来几张图片,看的更直观。

文字回复效果:

image 14-1.jpg

控制台效果:

14-2.jpg

微信助手效果:

14-3.jpg

退订/开通效果:

14-4.jpg

其他类型回复效果:

14-5.jpg

源码在github:Flowingsun007/littleSpiders 喜欢的盆友麻烦点个赞+star。谢谢!!!


(18.3.5更新):记录一下怕以后忘了,中文名的文件可以正常下载,但是在同步发送到文件助手的过程中总失败,应该是编码问题,花了大把时间去源码里改了两个地方,然后就可以正常收发中文名的文件了。

源码包components文件夹下messages.py中:

_prepare_file()函数中此句:

with open(u'%s' % fileDir, 'rb') as f:

和upload_chunk_file()函数中此句:

('filename' , (os.path.basename(u'{fileDir}'), file_.read(524288), 'application/octet-stream'))])
14-6.jpg 14-7.jpg
上一篇下一篇

猜你喜欢

热点阅读