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

前言:

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

 

 

主程序:

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

源码:

已上传至github:Flowingsun007/littleSpiders 

【原理】:

1. 主程序weChat.py通过itchat库实现微信好友聊天,自动回复。

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

【主要功能】:

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

TEXT类型的消息:

Python实现微信查天气+火车+飞机+快递!_第1张图片

 

 

 

 

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

其他类型的消息:

微信除了文字类型(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中保存。

 

 

 

 

 

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

文字回复效果:

Python实现微信查天气+火车+飞机+快递!_第2张图片

 

 

 

 

控制台效果:

Python实现微信查天气+火车+飞机+快递!_第3张图片

 

 

 

 

微信助手效果:

Python实现微信查天气+火车+飞机+快递!_第4张图片

 

 

 

 

退订/开通效果:

Python实现微信查天气+火车+飞机+快递!_第5张图片

 

 

 

 

其他类型回复效果:

Python实现微信查天气+火车+飞机+快递!_第6张图片

 

 

 

 

源码在github:Flowingsun007/littleSpiders 

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

源码包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'))])

Python实现微信查天气+火车+飞机+快递!_第7张图片

 

 

Python实现微信查天气+火车+飞机+快递!_第8张图片

 

 

 

 

 

 

你可能感兴趣的:(Python)