首页 > 其他分享 >第一个微信好友分析

第一个微信好友分析

时间:2024-02-21 19:00:42浏览次数:22  
标签:None 第一个 get 微信 raw 好友 pip friend

利用pc端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析

一、所需要的七个第三方库及其安装

1、Pillow

PIL:Python Imaging Library,已经是 Python 平台事实上的图像处理标准库。PIL功能非常强大,但API却非常简单易用。

如果安装了Anaconda,Pillow就已经可用了。否则,需要在命令行下通过pip安装:

pip install pillow

如果遇到Permission denied安装失败,请加上sudo重试。

2、Pyecharts

是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。

可在命令行通过pip安装:

pip install pyecharts 

3、Itchat

itchat 是一个开源的微信个人号接口,使用 python 调用微信从未如此简单。

可在在命令行通过pip安装:

pip install itchat

4、Jieba

Jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,下面是三种模式的特点。

精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析

全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据

搜索引擎模式:在精确模式的基础上,对长词再次进行切分

可在在命令行通过pip安装:

pip install jieba

5、Numpy

NumPy 是一个 Python 的第三方库,代表 “Numeric Python”,主要用于数学/科学计算。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

使用 Numpy 我们可以轻松进行如下等计算:

  • 数组的算数和逻辑运算。
  • 傅立叶变换和用于图形操作的例程。
  • 与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

可在在命令行通过pip安装:

pip install Numpy

6、Pandas

Pandas 是基于 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas 提

供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使 Python 成为强大而高效的数据分析环境的重要因素之一。

可在在命令行通过pip安装:

pip install Pandas

7、wxpy

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

可在在命令行通过pip安装:

pip install wxpy

8、安装地图数据包:

pip install echarts-china-provinces-pypkg
pip install echarts-countries-pypkg

二、开始分析

1、首先登录自己的微信

from wxpy import *
#初始化机器人,选择缓存模式(扫码)登录
bot = Bot(cache_path=True)
#获取我的所有微信好友信息
friend_all = bot.friends()

运行登录代码会自动弹出一个二维码页面,打开如下图 1, 用手机扫码同意后,进入微信并获取微信好友的相关信息。

 

print(friend_all[0].raw)#获取自己的全部信息
print(len(friend_all))#输出自己的微信好友人数

为了获取好友信息中需要的部分,我们对信息需要进行处理。从上面的获取信息全字段来看,我们获取的每位好友的信息都是一个字典,字典里只有'City'、'Province'、'Signature'、
'NickName'、'HeadImgUrl'、'Sex'是我们需要的。下面我们就对这几个 key 进行提取。

复制代码 复制代码
lis=[] #创建一个空列表
for a_friend in friend_all:
    NickName = a_friend.raw.get('NickName',None)
    #Sex = a_friend.raw.get('Sex',None)
    Sex ={1:"男",2:"女",0:"其它"}.get(a_friend.raw.get('Sex',None),None)
    City = a_friend.raw.get('City',None)
    Province = a_friend.raw.get('Province',None)
    Signature = a_friend.raw.get('Signature',None)
    HeadImgUrl = a_friend.raw.get('HeadImgUrl',None)
    HeadImgFlag = a_friend.raw.get('HeadImgFlag',None)
    list_0=[NickName,Sex,City,Province,Signature,HeadImgUrl,HeadImgFlag]
    lis.append(list_0)
复制代码

 

复制代码

 将 lis 列表能够保存到 excel 中:

复制代码
def lis2e07(filename,lis):
    import openpyxl
    wb = openpyxl.Workbook()
    sheet = wb.active
    sheet.title = 'list2excel07'
    file_name = filename +'.xlsx'
    for i in range(len(lis)):
        for j in range(len(lis[i])):
            sheet.cell(row=i+1, column=j+1, value=str(lis[i][j]))
    wb.save(file_name)
lis2e07('C:\\Users\\Administrator\\Desktop\\yubg1',lis)
复制代码

运行后结果如图:

对数据进行简单的分析:

Friends = bot.friends()
data = Friends.stats_text(total=True, sex=True,top_provinces=30, top_cities=500)
print(data)

结果如图:

标签:None,第一个,get,微信,raw,好友,pip,friend
From: https://www.cnblogs.com/komei/p/10965783.html

相关文章

  • 【微信/企业微信】批量发送消息
    一、背景公司运营需求,会经常给一些用户发送具有针对性的消息,用来提高用户黏性。之前每次发送都是人工处理,编辑信息,然后一个一个的手动复制粘贴发送,整个过程枯燥无味,浪费了大量的时间精力。一次偶然机会发现有现成的RPA工具,专门用来处理这种重复且规律的工作。自己下了一个,花了半......
  • 【微信/企业微信】批量添加好友
    一、背景前同事最近跳槽了,运营方面的工作,最近总是抱怨要处理各渠道的来的手机号。细问后,才知道,她需要把线上线下各种渠道手机到的用户手机号,添加到微信和企业微信好友中,然后集中运营,方便做后续运营操作,增加用户粘性和参与度。目前每次的工作量在200到500个手机号不等,每次操作要......
  • 微信小程序预览或保存pdf
    在完成微信预览或保存pdf功能需要用到两个重要的api-wx.downloadFile和wx.openDocumentwx.openDocument下载文件资源到本地,返回文件的本地临时路径(本地路径)使用这个api要在微信公众后平台配置合法域名白名单,否则会报下面这个错误只是测试功能的话,可以在本地设置......
  • uniapp编译成微信小程序报错-Component is not found in path "components/canvaspage
     问题:我需要将components/canvaspagebg/index引入进pages/index/index   报错了pages/index/index页面引入: uni-app程序编译成微信小程序后,组件无法显示,控制台报错,错误信息为: 我查看了路径,是对的看网上的解决办法就是 我取消勾选后刷新页面就可以了,此时我在选中......
  • JS-SDK 配置,实现微信分享功能
    官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html在使用微信分享功能之前,需要进行如下配置,参考官方文档1.绑定域名此处看官方文档2.引入JS文件此处看官方文档3.通过config接口注入权限验证配置这里进行步骤分解3.1调用后端签名接口......
  • 2 - 第一个驱动
    FirstLinuxDeviceDriver原文链接我的博客预备环境在原文链接中给出了ubuntu环境、树莓派环境、比格板环境的搭建指南,可以参考搭建,最好使用推荐的比格板,因为后面会涉及到设备驱动,比格板嵌入式平台方便扩展。第一个Linux设备驱动模块信息证数作者模块描述模块版本......
  • 聊聊微信小程序的流式(stream)响应请求
    场景:类似ChatGPT的逐字显示效果。流程:服务端我用Python的flask框架(向外提供API接口)实现,服务部署在replit上,Python调用azure的chatgpt服务(需要申请),并以流式的形式返回,小程序再调用这个流式接口实现。我会提供最小能运行的完整代码示例。我本地的Python版本:3.10.11、Flask版本:2.......
  • uniapp的H5端微信与支付宝支付(包括PC端与移动端)
    PC端:大致流程为1、请求创建订单接口传递正确参数(例如openid、金额、开始结束时间等),此接口会返回一个图片,或网络图片,或base64图片,这个图片是一张二维码;2、前端拿到这个二维码渲染到屏幕上并开始启动定时器,每过一秒请求一次查询支付结果接口,查询是否支付成功;3、支付宝支付可能会......
  • 微信自定义关键词,自动回复,微信公众号文章采集,开发已测试,欢迎大家来测试使用!
    本文主要是通过获取本地的句柄然后用来截取微信的消息,所以可以有效做到 零封号 零丢包 零失误  !!!经测试,可以自定义关键词和回复语(一行一个)可无限添加关键词和对应的回复语!回复时间基本在1秒以内,可以做到检测到关键词存在时即时回复的功能,可以获取到微信公众号文章等信......
  • 完美禁止微信网页下拉显示网页由某某提供
    简单理解就是:判断手指触摸移动走向-如果到顶之后-还在继续下拉,就阻止默认的touchmove事件【有用、无用请留言,谢谢】建议写在html页面中,第一时间生效。<script>      //禁用微信下拉      letlastTouchY=0;      wind......