吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4621|回复: 6
收起左侧

[Python 转载] [转载]如何用 Python 测出你和微信好友的亲密程度?

[复制链接]
爱好学习 发表于 2018-8-31 13:19 来自手机
本帖最后由 wushaominkk 于 2018-8-31 13:43 编辑

本素材来自网络,非原创
笔者这几天,简单看了一下Python里的wxpy模块后,搭配Matplotlib模块撰写的一个wxpy基本使用方法教程,也研究了一些比较好玩的东西,主要利用了wxpy对微信进行一系列的自动化操作。

比如利用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
    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
我关注的微信公众号数:125

5.个人聊天机器人搭建(基于自己的)

(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()

免费评分

参与人数 1热心值 +1 收起 理由
Beginner丶 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

13319937326 发表于 2018-8-31 13:48
如何做成案例,这个方面不懂
ProgramerFangL 发表于 2018-8-31 14:17
笨笨猪 发表于 2018-8-31 19:47
还使用规定的格式发,那样代码才好看一点。
这样的代码没有看的欲望。。
SonDanmbi 发表于 2018-9-27 01:56 来自手机
web微信协议?
小黑LLB 发表于 2019-2-12 11:37
感谢分享 楼主加油 支持一波
石林 发表于 2019-5-17 17:42
爬这个网站不错,可以知道不少诗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 08:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表