用Python玩转微信

2018-09-03 16:02:05 Python 阅读 (3405) 评论(0)

    微信现在可以说是我们现代生活中不可缺少的一个“工具”了,可以聊天社交,可以分享动态,可以shopping等等,不过要完成这些action,你都需要一个介质(手机或电脑)。但是,作为不安分的搞机develop programmer,当然不能安与此啊。所以就捣鼓捣鼓怎么用自己的特长去玩转微信吧,O(∩_∩)O哈哈~

    wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。本文所演示的功能大都基于wxpy。


    1.获取微信好友的性别比例和地区分布


from wxpy import *

bot = Bot(cache_path=True)
my_friends = bot.friends(update=True)

print(my_friends.stats_text())

Bot(cache_path=True)会自动生成一个二维码,手机微信扫描即可登录,cache_path=True会在本地生成一个缓存文件,这样就不用每次都生成二维码,就想电脑版微信,第一次登录需要扫描二维码,之后再登录,只需要手机上同意登录即可。

下面这是我的微信好友情况:

MVKP_3}`FNMBVLFL~(Z7%YN.png



    2.获取好友的个人签名

    好友的个人签名或多或少能表露出他们的一些个人状态,所以我们就来看看吧。

    因为有些人的个人签名可能有emoji表情或空,所以我这里就用正则把这些给过滤掉了

pattern = re.compile('<span.*?| ')

bot = Bot(cache_path=True)
my_friends = bot.friends(update=True)

signature_str = ''
for f in my_friends:
    signature = pattern.sub('', f.signature)
    if signature != '':
        print(signature)

然后看下输出结果:

1535964244350490.png



这样看文字太单调了,做个词云图吧(第二个图拿微信logo做了个背景图),(#^.^#)


这样看,好友的个人签名里“成长”,“努力”,“喜欢”,“开心”等这些正能量的字词还是很多的,大家还是都很fighting的呢


 3.如果对觉得上面的统计信息提不起兴趣,好吧,那用自己的微信号做个智能助理(搞笑机器人)吧

    wxpy可以实现对好友的收发信息,添加好友,群聊等一系列微信功能,也就是说,在此基础上做一个扩展,好友给你发一个消息时,自动回复消息,而且可以调用第三方api,根据好友发送的消息,进行不同语义环境下的消息的自动回复,没错这就是智能语音助理(又蠢又笨的机器人而已啦)。我这边是调用的图灵机器人,图灵机器人还是很好用的,主要是免费,嗯,这是重点,对,没错!

def my_friednd_message(msg):
    print('[接收]' + str(msg))
    try:
        sender = bot.user_details(msg.sender)
        if msg.type == 'Text':  # 文字消息回复内容
            ret = robot(msg.text, sender.province, sender.city)
        else:
            ret = '可以发文字吗?(#^.^#)[拜托]'
        print('[发送]' + ret)
    except Exception as e:
        print(e)
        ret = '时空好像错乱,我没看到你说的什么'
    return ret

# 进入交互式的 Python 命令行界面,并堵塞当前线程
embed()


这样就会发生很神奇(gaosiao)的事情了


image.pngimage.pngimage.pngimage.png

是不是很智能&gaosiao

      

         其实这个wxpy封装很多微信常用的功能,还是挺好玩好用的。更多wxpy的资料请查阅 https://wxpy.readthedocs.io/zh/latest/index.html

        虽然这个世界就那样,但是自己给生活找点乐子也挺好,不是嘛


评论