如何用Python爬取你的微信好友信息

大家好,我是A字头。
这篇文章主要是分享如何爬取自己的微信好友的公开信息,可以下载源码,查看自己微信好友的相关信息。
文末附下载方式。

"stay hungry, stay foolish"
“不舍爱与自由”
"自律"


爬取大家的签名后发现大家对生活都是积极向上的,希望每个人都能成为更好的自己!

沉迷于造轮子。。。

无法自拔

| 简述

微信是我们每天都会使用的社交工具,不同的人群会有不一样的朋友圈。
可能是微信不到百人的彭磊

就是这个长得有点猥琐的小眼睛男人

也可能是直逼好友上限的大佬

吓得我赶紧看了一下我的好友列表,迅速拉到最底端,算了一下还有四千多个位置。

没有体验过这种优秀的烦恼,所以我去搜了一下微信好友上限是一种什么体验:
大概是这样的吧!

或者是这样的?

接下来我会使用「itchat」(开源的微信个人接口)来获取一些公开的好友信息,使用itchat.get_friends(),我们可以获取微信好友头像、性别、省份、城市、年龄等具体信息。

爬取这些信息后做一些统计分布的分析。

| 好友头像

我们先拉取好友头像试一下,「itchat」里的get_head_img可以获取每个好友的头像:

def headImg():itchat.login()friends = itchat.get_friends(update=True)# itchat.get_head_img() 获取到头像二进制,并写入文件,保存每张头像for count, f in enumerate(friends):# 根据userName获取头像img = itchat.get_head_img(userName=f["UserName"])imgFile = open("photo/" + str(count) + ".jpg", "wb")imgFile.write(img)imgFile.close()

photo文件夹用于保存头像图片,遍历好友列表,根据下标命名头像,到这里可以看到文件夹里已经保存了所有好友的头像。

头像信息比较隐私,就不公布啦~

| 性别分布

当我们使用「itchat」的get_friends()函数可以获取很多好友信息,包括性别,所以这里只需要将获取到的好友性别信息提取出来制图就可以:

def analysisSex():itchat.login()friends = itchat.get_friends()sex_count = dict()for f in friends:if f["Sex"] == 1:  # mansex_count["man"] = sex_count.get("man", 0) + 1elif f["Sex"] == 2:  # womensex_count["women"] = sex_count.get("women", 0) + 1else:  # unknownsex_count["unknown"] = sex_count.get("unknown", 0) + 1# 柱状图展示for i, key in enumerate(sex_count):plt.bar(key, sex_count[key])plt.savefig("analysisSex.png") #保存图片plt.ion()plt.close()

结果如下:

| 个性签名

在获取的好友信息中Signature字段对应着好友的签名,
我们直接获取这部分信息,然后保存下来,处理过表情等特殊字符,然后制作词云图。

def AnalysisSignature():itchat.login()friends = itchat.get_friends(update=True)file = open('AnalysisSignature.txt', 'a', encoding='utf-8')for f in friends:signature = f["Signature"].strip().replace("emoji", "").replace("span", "").replace("class", "")# 正则匹配rec = re.compile("1f\d+\w*|[<>/=]")signature = rec.sub("", signature)file.write(signature + "\n")

"stay hungry, stay foolish"
"不舍爱与自由"


大家对生活都是积极向上的,希望每个人都能成为更好的自己!

| 地区分布

为了统计好友的地区分布,所以要用到好友信息的province字段,直接对province进行统计,然后可视化出来得到。

#省份分析
def analysisProvince():friends_info = get_friends_info()df = pd.DataFrame(friends_info)province_count = df.groupby('province', as_index=True)['province'].count().sort_values()temp = list(map(lambda x: x if x != '' else '未知', list(province_count.index)))# 画图page = Page()style = Style(width=1100, height=600)style_middle = Style(width=900, height=500)attr, value = temp, list(province_count)chart1 = Map('好友分布(中国地图)', **style.init_style)chart1.add('', attr, value, is_label_show=True, is_visualmap=True, visual_text_color='#000')page.add(chart1)chart2 = Bar('好友分布柱状图', **style_middle.init_style)chart2.add('', attr, value, is_stack=True, is_convert=True,label_pos='inside', is_legend_show=True, is_label_show=True)page.add(chart2)page.render('analysisProvince.html')

比较明显的一个点是,我们的好友大多来自我们生活过的地方,安徽和上海这两个地区好友数量都明显高于其他省份。

号主户籍安徽,利用城市信息看一下我的朋友都在哪里。
从下面的好友数量来看,号主明显是个安庆人。

你们可以直接修改源码的省份参数,获取你想了解的省份的好友分布。

更多源码下载:微信公众号(Data_Groom) 后台回复「自律

| 作者Info:

【作者】:A字头
【原创公众号】:数据札记倌(Data_Groom)
【简介】:这是一个坚持原创的技术公众号,每天坚持推送各种 Python 基础/进阶文章,数据分析,爬虫实战,机器学习算法,不定期分享各类学习资源。
【福利】:送你新人大礼包一份,关注微信公众号,后台回复:“CSDN” 即可获取!
【转载说明】:转载请说明出处,谢谢合作!~

如何用Python爬取你的微信好友信息相关推荐

  1. python爬取微信好友_如何用 Python 爬取自己的微信朋友

    原标题:如何用 Python 爬取自己的微信朋友 作者 Alfred 本文转载自网络,如涉及侵权请及时联系我们 微信作为一款拥有将近9亿用户的超级APP,已经成为很多人生活中不可或缺的一部分,聊天.分 ...

  2. 用Python爬取我的微信好友昵称和头像,原来...

    Git地址 卖坚果的怪叔叔 准备工作 1.一个可以登录网页版微信的微信号 2.一个ide编辑器 3.Python环境基于Python3 安装相关依赖 能够登录微信主要依赖于wxpy这个Python库 ...

  3. 如何用 Python 爬取网页制作电子书

    本文来自作者 孙亖 在 GitChat 上分享 「如何用 Python 爬取网页制作电子书」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 0 前言 有人爬取数据分析黄金周旅游景点,有人爬 ...

  4. 如何用python爬取网页数据,python爬取网页详细教程

    大家好,本文将围绕python怎么爬取网站所有网页展开说明,如何用python爬取网页数据是一个很多人都想弄明白的事情,想搞清楚python如何爬取网页数据需要先了解以下几个事情. 1.如何用Pyth ...

  5. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析

    原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...

  6. python爬取58同城的兼职信息

    标题python爬取58同城的兼职信息 刚刚开始学习爬虫,一些 自己研究的小东西,爬取58同城上面的兼职信息放入Excel表格里,具体代码解释在代码里给出注释,下面给出完整代码: #首先是导包 imp ...

  7. python爬取携程旅游评价信息词云图分析

    python爬取携程旅游评价信息词云图分析 前言 前面咱们已经分析过如何爬取携程旅游的相关信息,如果没有看过的,可以先跳转看一下前面的那篇博客:python 爬虫 一键爬取携程旅游团数据 这一篇呢,咱 ...

  8. Python爬取酷狗音乐歌手信息

    前面我们说过用python爬取网易云音乐的歌手信息,Python爬取网易云音乐歌手信息 今天我们来爬取一下酷狗音乐的歌手信息(歌手id和歌手名),如果环境没有安装好,可以参照前面爬网易云环境配置作为参 ...

  9. python爬取boss直聘招聘信息_Python 爬取boss直聘招聘信息!

    原标题:Python 爬取boss直聘招聘信息! 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求, ...

  10. 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)

    爬虫入门:python爬取豆瓣影评及影片信息:影片评分.评论时间.用户ID.评论内容 思路分析 元素定位 完整代码 豆瓣网作为比较官方的电影评价网站,有很多对新上映影片的评价,不多说,直接进入正题. ...

最新文章

  1. iOS底层(三)-状态寄存器
  2. centos 6.5搭建LNMP环境
  3. 237. 删除链表中的节点(C语言)
  4. 项目、SVN clean的一些事
  5. List与逗号分隔的字符串相互转换
  6. CVE-2019-0708 BlueKeep的扫描和打补丁
  7. 一般是一个较为复杂的 飞鸽传书 对象
  8. 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
  9. xss攻击和csrf攻击
  10. redis zset转set 反序列化失败_关于Redis中的五种数据结构,要知其然知其所以然...
  11. 计算机组成原理——课程设计
  12. Java 生成 验证码图片
  13. 维基百科中文语料建模
  14. 手机端富文本编辑器_在手机上也能高效写作,这款好用的移动端编辑器值得你尝试...
  15. Win10部分引起鼠标卡顿间歇性失灵的原因
  16. 梯度下降---偏导数及其几何意义
  17. JAVA版村庄哨塔种子_我的世界:5个奇特且罕见的种子,相邻的哨塔,循环的地形图...
  18. 混频对两路同频同源射频信号相位差的影响
  19. Matlab2018a 与ccs7生成tms320F2812代码调试记录
  20. pdf做成翻页电子书_如何一分钟将PDF制作成电子书?这个热门电子书刊制作软件推荐给你!...

热门文章

  1. win7如何设置wifi热点_教你win7如何设置网络共享文件夹
  2. 登录时用户名或密码错误弹窗提醒重新登录
  3. 使用过滤器解决中文乱码问题
  4. python3 读取.plist文件_在Python中解析plist文件
  5. 华为云GaussDB首次亮相2021服贸会,为数字人民币提供坚实数据底座
  6. 去除CSDN 博客页广告的历程
  7. iOS7 与 iOS8上 uisegementcontrol 设置image不显示问题
  8. 产品经理面试如何做自我介绍?
  9. 小米手机Android怎么截屏,小米手机怎么截屏 5种截屏方法分享
  10. Dialog去掉默认白色背景