您的位置 首页 > 数码极客

如何爬取别人微信数据 如何爬取别人的电话

作者 | 吴小鹏

来源 | 数据札记倌(ID:Data_Groom)

"stay hungry, stay foolish"

"不舍爱与自由"

"自律"

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

沉迷于造轮子。。。无法自拔

简述

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

可能是微信不到百人的彭磊

就是这个小眼睛男人

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

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

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

大概是这样的吧!

或者是这样的?

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

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

好友头像

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

def headImg:

i

friends = i(update=True)

# i 获取到头像二进制,并写入文件,保存每张头像

for count, f in enumerate(friends):

# 根据userName获取头像

img = i(userName=f["UserName"])

imgfile = open("photo/" + str(count) + ".jpg", "wb")

imgFile.write(img)

imgFile.close

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

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

性别分布

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

def analysisSex:

i

friends = i

sex_count = dict

for f in friends:

if f["Sex"] == 1: # man

sex_count["man"] = ("man", 0) + 1

elif f["Sex"] == 2: # women

sex_count["women"] = ("women", 0) + 1

else: # unknown

sex_count["unknown"] = ("unknown", 0) + 1

# 柱状图展示

for i, key in enumerate(sex_count):

(key, sex_count[key])

("analy;) #保存图片

结果如下:

个性签名

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

如何利用Python生成词云图

def AnalysisSignature:

i

friends = i(update=True)

file = open('Analy;, 'a', encoding='utf-8')

for f in friends:

signature = f["Signature"].("emoji", "").replace("span", "").replace("class", "")

# 正则匹配

rec = re.compile("1f\d+\w*|[<>/=]")

signature = rec.sub("", signature)

(signature + "\n")

"stay hungry, stay foolish"

"不舍爱与自由"

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

地区分布

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

# 省份分析

def analysisProvince:

friends_info = get_friends_info

df = (friends_info)

province_count = df.groupby('province', as_index=True)['province'].count.sort_values

temp = list(map(lambda x: x if x != '' else '未知', li)))

# 画图

page = Page

style = Style(width=1100, height=600)

style_middle = Style(width=900, height=500)

attr, value = temp, list(province_count)

chart1 = Map('好友分布(中国地图)', **)

c('', attr, value, is_label_show=True, is_visualmap=True, visual_text_color='#000')

(chart1)

chart2 = Bar('好友分布柱状图', **)

c('', attr, value, is_stack=True, is_convert=True,

label_pos='inside', is_legend_show=True, is_label_show=True)

(chart2)

('analy;)

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

号主户籍安徽,利用城市信息看一下我的朋友都在哪里。

从下面的好友数量来看,号主明显是个安庆人。

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

源码下载:

密码:0eco

(*本文为AI科技大本营转载文章,转载联系作者

11.11惠不可挡!

BDTC 2019双十一豪礼大放送,凡11.11当天购买大会“单人票”,即可额外获得价值298元CSDN VIP年卡!(VIP年卡特权:全站免广告+600个资源免积分下载+学院千门课程免费看+购课9折)~

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何爬取别人微信数据,如何爬取别人的电话”边界阅读