美文网首页
Python玩微信(超有趣玩法)

Python玩微信(超有趣玩法)

作者: CodingFish | 来源:发表于2017-05-13 03:13 被阅读595次

itchat

无意间发现的一个有意思的开源项目itchat,相当于微信api,扫码登录后去抓包爬取信息,还可以post去发送信息。
GitHub star数量4,非常火,作者是@LittleCoder,已经把微信的接口完成了,大大的方便了我们对微信的挖掘,以下的功能也通过itchat来实现。

安装itchat这个库

pip install itchat

先来段简单的试用,实现微信的登录,运行下面代码会生成一个二维码,扫码之后手机端确认登录,就会发送一条信息给‘filehelper’,这个filehelper就是微信上的文件传输助手。

import itchat
# 登录
itchat.login()
#  发送消息
itchat.send(u'你好', 'filehelper')

1. 微信好友男女比例

想统计下自己微信里好友的性别比例,当然也是很简单,先获取好友列表,统计列表里性别计数

import itchat

# 先登录
itchat.login()
# 获取好友列表
friends = itchat.get_friends(update=True)[0:]
# 初始化计数器,有男有女,当然,有些人是不填的
male = female = other = 0
# 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算# 1表示男性,2女性
for i in friends[1:]:
    sex = i["Sex"]
    if sex == 1:
        male += 1
    elif sex == 2:
        female += 1
    else:
        other += 1
# 总数算上,好计算比例啊~
total = len(friends[1:])
# 好了,打印结果
print(u"男性好友:%.2f%%" % (float(male) / total * 100))
print(u"女性好友:%.2f%%" % (float(female) / total * 100))
print(u"其他:%.2f%%" % (float(other) / total * 100))

结果:

结果是个意外。。。。

2. 好友昵称,备注,以及个性签名

其实还可以爬出很多每个好友的其他属性,比如家乡等等信息!
直接上代码:

# coding:utf-8
import itchat

# 先登录
itchat.login()
# 获取好友列表
friends = itchat.get_friends(update=True)[0:]
for i in friends:
    # 获取个性签名
    # print(i)
    name = i['RemarkName']
    nickname = i['NickName']
    # 正则匹配过滤掉emoji表情,例如emoji1f3c3等
    signature = i["Signature"].strip().replace("span", "").replace("class", "").replace("emoji",
                                                                                        "")
    print(name + "," + nickname + "," + signature)

运行效果如图:

3.好友个性签名词云

获取好友列表的时候,返回的json信息中还看到了有个性签名的信息,脑洞一开,把大家的个性签名都抓下来,看看高频词语,还做了个词云。
先全部抓取下来
打印之后你会发现,有大量的span,class,emoji,emoji1f3c3等的字段,因为个性签名中使用了表情符号,这些字段都是要过滤掉的,写个正则和replace方法过滤掉
贴代码:

# wordcloud词云
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import os
import numpy as np
import PIL.Image as Imaged
import itchat

os.path.dirname(__file__)
alice_coloring = np.array(Imaged.open(os.path.join('/Users/t-mac/desktop', "640.jpeg")))
my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,
                         max_font_size=40, random_state=42,
                         font_path='/Users/sebastian/Library/Fonts/Arial Unicode.ttf').generate(wl_space_split)
image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
# 保存图片 并发送到手机
my_wordcloud.to_file(os.path.join('/Users/t-mac/desktop', "wechat_cloud.png"))
itchat.send_image("wechat_cloud.png", 'filehelper')

效果如图:

我的Github地址:https://github.com/TracyMcgrady6/wechat

相关文章

  • Python玩微信(超有趣玩法)

    itchat 无意间发现的一个有意思的开源项目itchat,相当于微信api,扫码登录后去抓包爬取信息,还可以po...

  • 小小妖怪

    【玩法丰富】 丰富的有趣玩法,超多的内容玩不腻!游戏以即时对战玩法为主,挑战终极大BOSS!

  • 萌宠大战

    丰富的有趣玩法,超多的内容玩不腻! 游戏以即时对战玩法为主,挑战终极大BOSS!

  • 日月小精灵

    【玩法创新,冒险升级】 丰富的有趣玩法,超多的内容更新玩不腻,冒险升级,每次的冒险与挑战都充满无限的未知与惊喜,即...

  • 口袋大冒险

    丰富的有趣玩法,超多的内容更新玩不腻,冒险升级,每次的冒险与挑战都充满无限的未知与惊喜,即时对战的玩法,让冒险的乐...

  • Python 玩微信跳一跳

    Python 玩微信跳一跳 环境:Python, Android SDK 方法:利用Python识别棋子和落点位置...

  • Python有趣|寻找知乎最美小姐姐

    前言 本月将更新八篇Python有趣系列文章。本系列通过多个有趣案例,讲解Python的玩法,其中包含如下内容,一...

  • 利用Python找到知乎上最漂亮的小姐姐!不接受任何反驳!

    前言 本月将更新八篇Python有趣系列文章。本系列通过多个有趣案例,讲解Python的玩法,其中包含如下内容,一...

  • Python 骚操作,自动拷贝U盘

    阅读文本大概需要 6 分钟。 Python 这门语言有非常多有趣的内容,比如给微信好友自动发消息、查看微信好友撤回...

  • 30行代码实现微信自动回复机器人

    30行代码实现微信自动回复机器人 一、写在前面 今天下午又学到了itchat另一种有趣的玩法---微信自动回复机器...

网友评论

      本文标题:Python玩微信(超有趣玩法)

      本文链接:https://www.haomeiwen.com/subject/pwztxxtx.html