首页 » SEO优化 » phpembedthread技巧_若何用 Python 测出你和微信石友的亲密程度

phpembedthread技巧_若何用 Python 测出你和微信石友的亲密程度

访客 2024-12-12 0

扫一扫用手机浏览

文章目录 [+]

作者 | XksA

责编 | 胡巍巍

phpembedthread技巧_若何用 Python 测出你和微信石友的亲密程度

笔者这几天,大略看了一下Python里的wxpy模块后,搭配Matplotlib模块撰写的一个wxpy基本利用方法教程,也研究了一些比较好玩的东西,紧张利用了wxpy对微信进行一系列的自动化操作。

phpembedthread技巧_若何用 Python 测出你和微信石友的亲密程度
(图片来自网络侵删)

比如利用wxpy登录微信、给微信文件助手发送、给单个微信好友发送、微信群发(谨慎利用)以及微信谈天机器的搭建利用过程。

你以为wxpy只能这样?No,末了笔者利用wxpy获取了我的微信好友的数量、性别、城市、省份、昵称及个性署名,和关注的微信公众年夜众号昵称、"大众年夜众号简介信息。

搭配Matplotlib进行了一系列数据的可视化,中间参杂着笔者的一些东倒西歪的笔墨剖析,从这些,我解读出了一个真实的我(文末正解)。

wxpy基本先容与安装1.wxpy基本先容

wxpy基于itchat,利用了Web微信的通讯协议,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。
实现了微信登录、收发、搜索好友、数据统计、微信"大众年夜众号、微信好友、微信群基本信息获取等功能。

可用来实现各种微信个人号的自动化操作。

方法一:直接安装

pip install wxpy

方法二:豆瓣源安装(推举)

pip install -i https://pypi.douban.com/simple/ wxpy

实践出真知

1.给自己的文件传输助手发

from wxpy import # 初始化一个机器人工具bot = Bot(cache_path=True)# 向文件传输助手发送bot.file_helper.send(\"大众hello,I'm XksA!\"大众)

BOT类基本参数先容:

cache_path – 设置当前会话的缓存路径,并开启缓存功能;为 None (默认) 则不开启缓存功能。
开启缓存后可在短韶光内避免重复扫码,缓存失落效时会重新哀求上岸。
设为 True 时,利用默认的缓存路径 ‘wxpy.pkl’。
qr_path – 保存二维码的路径console_qr – 在终端中显示上岸二维码

运行后弹出一个二维码图片,用微信扫码登录即可,再回来看手机。

微信文件传输助手

特殊提醒:利用的微信账号不能为新注册的账号,不然会报错Keyerror:'pass_ticket'。

2.给指定朋友发送

# 初始化一个机器人工具# cache_path缓存路径,给定值为第一次登录天生的缓存文件路径bot = Bot(cache_path=\公众H:PyCodingWxpy_testwxpy.pkl\公众)# 查找朋友\公众极简XksA\"大众my_friend = bot.friends().search('极简XksA')[0]# 发送my_friend.send('hello 极简XksA!')'''除此之外还有可以发送一下内容,自己动手考试测验吧发送图片my_friend.send_image('hello.png')发送视频my_friend.send_video('hello.mp4')发送文件my_friend.send_file('hello.rar')'''

运行结果:

单独好友

3.群发(今早醒来突发奇想,给每人发个早安!

import time# 初始化一个机器人工具# cache_path为登录状态缓存路径,给定值为第一次登录天生的缓存文件路径bot = Bot(cache_path=\"大众H:PyCodingWxpy_testwxpy.pkl\公众)# 群发(谨慎利用,哈哈哈)my_friends = bot.friends(update=False)my_friends.pop(0) # 去除列表第一个元素(自己)for i in range(120): friend = my_friends[i] friend.send('Good morning,the early bird catches the worm!(早上好,早起的鸟儿有虫吃!
)') time.sleep(2) friend.send('不用回答,生活中一起加油!
')

运行效果:

群发效果图

4.获取自己的微信好友数、生动微信群数、关注微信"大众年夜众号数

# 获取所有好友[返回列表包含Chats工具(你的所有好友,包括自己)]t0 = bot.friends(update=False)# 查看自己好友数(除开自己)print(\"大众我的好友数:\公众+str(len(t0)-1))# 获取所有微信群[返回列表包含Groups工具]t1 = bot.groups(update=False)# 查看微信群数(生动的)print(\公众我的微信群聊数:\"大众+str(len(t1)))# 获取所有关注的微信"大众年夜众号[返回列表包含Chats工具]t2 = bot.mps(update=False)# 查看关注的微信"大众年夜众号数print(\公众我关注的微信公众号数:\"大众+str(len(t2)))

运行结果:

# 注:如果直接把t0、t1、t2打印出便是对应得名称(不同类型,自己可以试一下)我的好友数:242我的微信群聊数:6我关注的微信"大众号数:1255.个人谈天机器人搭建(基于自己的)(1)自己的谈天机器人

# 查找谈天工具my_friend = bot.friends().search('极简XksA')[0]my_friend.send('hello 极简XksA!')# 自动回答# 如果想对所有好友实现机器人回答把参数 my_friend 改成 chats = [Friend]@bot.register(my_friend)def my_friednd_message(msg): print('[吸收]' + str(msg)) if msg.type != 'Text': # 除笔墨外其他回答内容 ret = '你给我看了什么!
[拜托]' elif \公众你来自哪里\"大众 in str(msg): # 特定问题回答 ret = \"大众我来自极简XksA\公众 else: # 笔墨自动回答 ret = '我爱你' print('[发送]' + str(ret)) return ret# 进入交互式的 Python 命令行界面,并堵塞当前哨程embed()(2)谈天效果图

基于自己的谈天机器人

6.个人谈天机器人搭建(基于图灵机器人的)(1)事前准备

点击这里注册图灵机器人账号,然后创建一个机器人,即可得到属于你的图灵机器人API。

图灵机器人API获取

(2) 创建属于自己的谈天机器人

方法一:利用Tuling类,大略实现

# 登录缓存路径,第一次设置为True# 天生缓存文件wxpy.pkl后,为该文件路径bot = Bot(cache_path=\公众H:PyCodingWxpy_testwxpy.pkl\公众) tuling = Tuling(api_key='你的图灵接口api')print('极简机器人已经启动')# 我的小号,测试需谨慎my_friednd = bot.friends().search('极简XksA')[0]# 如果想对所有好友实现机器人回答把参数my_friend改成chats = [Friend]# 利用图灵机器人自动与指定好友谈天@bot.register(my_friend)def reply_my_friend(msg): tuling.do_reply(msg)# 进入交互式的 Python 命令行界面,并堵塞当前哨程embed()方法二:自己手动发送POST要求,有点麻烦哈哈哈~

def auto_ai(text): url = \"大众http://www.tuling123.com/openapi/api\"大众 api_key = \"大众你的图灵接口api\公众 payload = { \公众key\公众: api_key, \公众info\公众: text, \公众userid\"大众: \公众老表\"大众 } r = requests.post(url, data=json.dumps(payload)) result = json.loads(r.content) return \公众[极简机器人] \"大众 + result[\公众text\"大众]bot = Bot(cache_path=\"大众H:PyCodingWxpy_testwxpy.pkl\"大众) print('极简机器人已经启动')# 我的小号,测试需谨慎my_friednd = bot.friends().search('极简XksA')[0]# 如果想对所有好友实现机器人回答把参数my_friend改成chats = [Friend]@bot.register(my_friednd)def my_friednd_message(msg): print('[吸收]' + str(msg)) if msg.type != 'Text': ret = '你给我看了什么!
[拜托]' else: ret = auto_ai(msg.text) print('[发送]' + str(ret)) return ret# 进入交互式的 Python 命令行界面,并堵塞当前哨程embed()(3)谈天效果图

基本测试,图灵机器人可以实现查询景象、车票、翻译、基本谈天等功能,比我们自己写的强,哈哈哈。

个人谈天效果图

7.来点有趣的(1)获取微信好友性别、位置分布数据

'''author : 极简XksAdata : 2018.8.26goal : 获取微信好友性别、分布、微信昵称,可视化剖析'''from wxpy import # 初始化一个机器人工具# cache_path缓存路径,给定值为第一次登录天生的缓存文件路径bot = Bot(cache_path=\"大众H:PyCodingWxpy_testwxpy.pkl\公众)#获取好友列表(包括自己)my_friends = bot.friends(update=False)'''stats_text 函数:帮助我们大略统计微信好友基本信息大略的统计结果的文本 :param total: 总体数量 :param sex: 性别分布 :param top_provinces: 省份分布 :param top_cities: 城市分布 :return: 统计结果文本'''print(my_friends.stats_text())

运行结果:

老表 共有 245 位微信好友男性: 140 (57.1%)女性: 79 (32.2%)TOP 10 省份湖北: 88 (35.92%)广东: 16 (6.53%)北京: 12 (4.90%)湖南: 5 (2.04%)上海: 5 (2.04%)浙江: 4 (1.63%)河南: 4 (1.63%)安徽: 3 (1.22%)山东: 3 (1.22%)福建: 3 (1.22%)TOP 10 城市荆州: 25 (10.20%)武汉: 22 (8.98%)黄石: 21 (8.57%)海淀: 5 (2.04%)广州: 5 (2.04%)深圳: 4 (1.63%)黄冈: 4 (1.63%)杭州: 3 (1.22%)长沙: 3 (1.22%)昌平: 3 (1.22%)

(2)利用Matplotlib进行数据可视化

1)性别占比饼图

from pylab import mpl.rcParams['font.sans-serif'] = ['SimHei']# 上面两行代码办理matplotlib绘图不能显示中文问题import matplotlib.pyplot as pltlabels = ['男性', '女性', '其他']sizes = [57.1, 32.2, 10.7]explode = (0, 0.1, 0)fig1, ax1 = plt.subplots()ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90)# 纵横相等,画成一个圆ax1.axis('equal')plt.legend()plt.show()效果图:

性别占比饼图

我的天啊(自绘),我的微信好友居然是男性居多,嘿嘿,也正常,笔者从不沾花惹草,当然女生也不是特殊少嘿,包含了家人朋友还有一些社会人嘿。

2)城市分布条形图

import numpy as npimport matplotlib.pyplot as pltn_groups = 10# 城市分布数量权值city_weight = (10.2,8.98,8.57,2.04,2.04,1.63,1.63,1.22,1.22,1.22)fig, ax = plt.subplots()index = np.arange(n_groups)bar_width = 0.35opacity = 0.4error_config = {'ecolor': '0.3'}rects1 = ax.bar(index, city_weight, bar_width,alpha=opacity, color='b', error_kw=error_config,label='城市')ax.set_xlabel('城市名称')ax.set_ylabel('数据占比(%)')ax.set_title('好友城市Top10')ax.set_xticks(index + bar_width / 2)ax.set_xticklabels(('荆州', '武汉', '黄石', '海淀', '广州','深圳', '黄冈', '杭州', '长沙', '昌平'))ax.legend()fig.tight_layout()plt.show()效果图:

城市发布图

从图中随意马虎看出X师长西席好友多在荆州,那猜猜X师长西席是哪里的人?没错,便是荆州人嘿,你的好友里是不是也是家乡人最多呢?(溘然地想家!

3)好友省份分布图

from pyecharts import Map# matplotlib的方法比较麻烦,显示起来还没pyecharts 好,就用了pyecharts value = [359.2, 65.3, 49.0, 20.4, 20.4, 16.3, 16.3, 12.2, 12.2,12.2]attr = [ \公众湖北\"大众, \"大众广东\公众, \公众北京\"大众, \"大众湖南\公众, \"大众上海\"大众, \"大众浙江\"大众, \"大众河南\公众, \公众安徽\"大众, \"大众山东\公众,\"大众福建\"大众 ]map = Map(\"大众好友分布省份Top10\"大众, width=600, height=400)map.add( \"大众\"大众, attr, value, maptype=\"大众china\"大众, is_visualmap=True, visual_text_color=\"大众#000\公众,)map.render()

效果图:

好友省份分布图

是不是很直接明了,我的好友基本在我国中南部,你知道你的好友分布吗?我在长江中下贱,这里有水有山,有花有草,有乐园。

4)获取好友微信昵称和个性署名,词云剖析

bot = Bot(cache_path=\"大众H:PyCodingWxpy_testwxpy.pkl\"大众)#获取好友列表(包括自己)my_friends = bot.friends(update=False)# 微信昵称nick_name = ''# 微信个性署名wx_signature = ''for friend in my_friends: # 微信昵称:NickName nick_name = nick_name + friend.raw['NickName'] # 个性署名:Signature wx_signature = wx_signature + friend.raw['Signature']nick_name = jiebaclearText(nick_name)wx_signature = jiebaclearText(wx_signature)make_wordcloud(nick_name,1)make_wordcloud(wx_signature,2)效果图:

微信好友昵称

我的微信好友昵称,有点繁芜,搞淘宝的,浩浩,石头,还有创业的,当然最能干的是老师,都说老师是园丁,感激您养育了我们(突发其感)。

微信好友个性署名

我创造他们可以练成一段话:我们所有的人生,便是平凡的自己最伟大,遇见一个美好的自己,生平不止生活,加油。


5)获取关注微信公众年夜众号名称和基本简介,词云剖析

# 获取微信公众年夜众号名称wx_public_name = ''# "大众号简介wx_pn_signature = ''# 获取微信"大众年夜众号列表my_wx_pn = bot.mps(update=False)for wx_pn in my_wx_pn: wx_public_name = wx_public_name + wx_pn.raw['NickName'] wx_pn_signature = wx_pn_signature + wx_pn.raw['Signature']wx_public_name = jiebaclearText(wx_public_name)make_wordcloud(wx_public_name,3)wx_pn_signature = jiebaclearText(wx_pn_signature)make_wordcloud(wx_pn_signature,4)

效果图:

关注微信公众年夜众号昵称词云图

看出什么蹊跷没?你问我爱你有多深,你看看Python就知道了哈哈!

"大众号简介词云图

基本可以看出我关注的都是积极向上的嘿,Java、Python、英语、数据、爬虫…...

后言

总结,从上面的数据可视化结果,我推测出这样的我:X师长西席,微信昵称老表,性别男,坐标地址湖北荆州,好友中男性居多,解释奇迹心重,女性也不少,解释女人缘也不错,微信好友个性署名基本积极向上。

有生活,有奋斗,有喜好,所关注微信公众年夜众号,大多是技能干系的。
专注于Python,也有时候三心二意玩Java,该当是一名大学生,还关注有大学官方公众年夜众号.....哈哈哈(以上纯属笔者自卖自夸,彷佛还蛮有道理的嘿!

作者:XksA,大三在读的师范技能生,紧张学习Python web、数据剖析、可视化方面,个人"大众号 极简XksA 长期分享学习条记,学习资料,欢迎互换学习。

声明:本文为作者投稿,版权归对方所有。

“征稿啦”

CSDN 公众年夜众号秉持着「与千万技能人共发展」理念,不仅以「极客头条」、「畅言」栏目在第一韶光以技能人的独特视角描述技能人关心的行业焦点事宜,更有「技能头条」专栏,深度解读行业内的热门技能与场景运用,让所有的开拓者紧跟技能潮流,保持警觉的技能嗅觉,对行业趋势、技能有更为全面的认知。

如果你有优质的文章,或是行业热点事宜、技能趋势的真知灼见,或是深度的运用实践、场景方案等的新见地,欢迎联系 CSDN 投稿,联系办法:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。

标签:

相关文章

临盆进度php技巧_分娩治理软件ERP系统

一、生产管理软件的浸染 生产管理软件也叫企业资源管理(ERP系统 ,以生产操持为主线,对企业制造的各种资源进行统一的操持和掌握,实...

SEO优化 2024-12-14 阅读0 评论0