• 10分钟教你用Python玩转微信之抓取好友个性签名制作词云


    01 前言+展示

    各位小伙伴我又来啦。今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云。怎样,有趣吧~好了,下面开始干活。我知道你们还是想先看看效果的。

    后台登录:


    词云:

    02 环境准备

    Python版本:3.6.0
    系统平台:Windows 10 X64
    IDE:pycharm

    相关模块:
    re模块;
    itchat模块;
    jieba模块;
    import matplotlib.pyplot模块;
    wordcloud模块;
    以及一些Python自带的模块。

    03 获取个性签名

    首先要做的,当然还是登录微信,获取好友的个性签名啦:

     1import itchat
    2# 先登录
    3itchat.login()
    4
    5# 获取好友列表
    6 friends = itchat.get_friends(update=True)[0:]
    7 for i in friends:
    8    # 获取个性签名
    9    signature = i["Signature"]
    10print(signature)

    但是获取下来之后我们会发现,有大量的span,class,emoji,emoji1f3c3等的字段:

    这是因为个性签名中使用了表情符号,这些字段我们都是要过滤掉的,所以写个正则和然后用replace方法去掉吧。

    04 过滤掉emoji表情

    这次把相关字段给replace成空格先:

    1# 获取好友列表
    2friends = itchat.get_friends(update=True)[0:]
    3for i in friends:
    4  signature = i["Signature"].strip().replace("span""").replace("class""").replace("emoji""")# 获取个性签名
    5  print(signature)

    然后发现,还是不太妥当:

    这里要借助一下re了,写个正则把这些统统干掉:

    1# 获取好友列表
    2friends = itchat.get_friends(update=True)[0:]
    3for i in friends:
    4  signature = i["Signature"].strip().replace("span""").replace("class""").replace("emoji""")# 获取个性签名
    5  rep = re.compile("< =.+/>")# 正则匹配过滤掉emoji表情,例如emoji1f3c3等
    6  signature = rep.sub("", signature)
    7  print(signature)

    为了照顾新手朋友,这里直接用了最简单的正则形式,把尖括号两端的直接匹配然后干掉,不过一般不推荐这样干。推荐用这样的表达式rep = re.compile("[^u4e00-u9fa5^]")。关于正则和re大家还是自己去找资料学习吧。然后perfect了:

    05 制作词云

    接来下用jieba分词,然后制作成词云,在此之前记得安装jieba和wordcloud库。

     1 # jieba分词
    2 wordlist_jieba = jieba.cut(text, cut_all=True)
    3 wl_space_split = " ".join(wordlist_jieba)
    4
    5 # 这里要选择字体存放路径,win的字体在windows/Fonts中
    6 # #如果是中文必须要添加字体路径,否则会显示成框框
    7 my_wordcloud = WordCloud(background_color="white", width=1600, height=1200,
    8                         font_path='C:WindowsFonts苹方PingFang Bold_0.ttf').generate(wl_space_split)
    9
    10plt.imshow(my_wordcloud)
    11plt.axis("off")
    12plt.show()

    记得要设置好中文路径哦。

    效果图:

    06 完整代码

    欲获取代码,请关注我们的微信公众号【程序猿声】,在后台回复:pycode02。即可获取。

    微信公众号微信公众号

    推荐文章:10分钟教你用Python做个打飞机小游戏超详细教程
    推荐文章:10分钟教你用python下载和拼接微信好友头像图片

  • 相关阅读:
    Eclipse 的SVN 插件
    linux克隆后修配置
    SVN服务器端环境搭建步骤
    Linux安装 jdk、tomcat、eclipse、mysql
    Linux RPM和YUM
    linux进程管理
    day21
    day20
    day18 作业
    day 19
  • 原文地址:https://www.cnblogs.com/dengfaheng/p/10029507.html
Copyright © 2020-2023  润新知