如何利用python之wxpy模块玩转微信


Posted in Python onAugust 17, 2020

wxpy也是一个python的模块,利用它我们可以做很多有意思的事情
首先利用一句代码我们就可以利用python登录网页版微信

bot = Bot(cache_path= True)

这条语句会产生一个二维码,我们扫描了这个二维码之后就可以登录我们的微信了
功能一:获得微信好友信息
利用一行语句获得你微信好友的个数、男女比例、TOP10省份及TOP10城市

my_friends.stats_text()

效果如图

如何利用python之wxpy模块玩转微信

利用下面两行代码我们可以给微信好友发送信息

friends = my_friends.search('你想要发送的人名')[0]
friends.send('你想要发送的信息')

所以衍生了下面两个功能
功能二:群发消息

my_friend = bot.friends()
for i in my_friend[1:]:
 a = i.name
 friend = my_friend.search(a)[0]
 print('正在发送',friend)
 friend.send('')#你想要发送的内容
 print('ok')
 time.sleep(1)#由于发送消息太快最后加上一个延迟

功能三:消息轰炸

friends = my_friends.search('你想要发送的人名')[0]
for i in range(50):
 friends.send('你想要发送的信息')

我这里是发了50遍,记得加上time.sleep(),要是发送太快会被禁止发信息的
功能四:获得好友头像
利用friend.get_avatar函数

def CREATE_PICPATHT():
 path = os.getcwd() +"\\pic\\"
 if not os.path.exists(path):
  os.mkdir(path)
  return path
def IMAGE_SAVE(path):
 my_friends = bot.friends()
 num = 0
 for friend in my_friends:
  print(friend.name)
  friend.get_avatar(path + '\\' + str(num) + ".jpg")
  num = num + 1
path = CREATE_PICPATHT()
IMAGE_SAVE(path)

效果如图:

如何利用python之wxpy模块玩转微信

功能五:头像拼接
下面展示一些 内联代码片

def PJ_IMAGE(path):
 length = len(os.listdir(path))
 image_size = 2560
 each_size = math.ceil(2560 / math.floor(math.sqrt(length)))
 x_lines = math.ceil(math.sqrt(length))
 y_lines = math.ceil(math.sqrt(length))
 image = Image.new('RGB', (each_size * x_lines, each_size * y_lines))
 x = 0
 y = 0
 for (root, dirs, files) in os.walk(path):
  for pic_name in files:
   try:
    with Image.open(path + pic_name) as img:
     img = img.resize((each_size, each_size))
     image.paste(img, (x * each_size, y * each_size))
     x += 1
     if x == x_lines:
      x = 0
      y += 1
   except IOError:
    print("头像读取失败")
  img = image.save(os.getcwd() +"/wechat.png")
  print('已完成')

path就是上面获得头像的path,这串代码是借鉴别的大神的

如何利用python之wxpy模块玩转微信

最后我把代码整合在了一起并加上了按钮和界面,如下图

如何利用python之wxpy模块玩转微信

输入的用户名可以是备注也可以是原名,然后群发的消息也是放在第二行点击一下就好了,好友信息会以txt的文件存放,好友图片会放在文件夹里,虽然亚子有点丑

如何利用python之wxpy模块玩转微信

最后我也打包成了exe文件,可以直接执行

如何利用python之wxpy模块玩转微信
如何利用python之wxpy模块玩转微信

最后附上完整代码
下面展示一些 内联代码片

from wxpy import *
import os
import tkinter as tk
import tkinter
import math
from PIL import Image
import time
window = tkinter.Tk()
window.title('微信')
window.geometry("800x480")
bot = Bot(cache_path= True)
l1 = tk.Label(window, text="第一行输入用户名第二行输入信息",
    font=("黑体", 10))
l1.pack()
ask_text = tk.Entry(background = 'orange')
ask_text.pack()
ask_text1 = tk.Entry(background = 'pink')
ask_text1.pack()
def onclick():
 a = ask_text.get()
 my_friends = bot.friends()
 friends = my_friends.search(a)
 return friends[0]
def onclick1():
 a = ask_text1.get()
 return a
def CREATE_PICPATHT():
 path = os.getcwd() +"\\pic\\"
 if not os.path.exists(path):
  os.mkdir(path)
  return path
def IMAGE_SAVE(path):
 my_friends = bot.friends()
 num = 0
 for friend in my_friends:
  print(friend.name)
  friend.get_avatar(path + '\\' + str(num) + ".jpg")
  num = num + 1
def CREATE_TXTPATH():
 a = os.getcwd()
 filename = a + '\用户信息' + '.txt'
 return filename
def GET_FriendSTXT(filenmame):
 my_friend = bot.friends()
 with open(filenmame,'w') as f:
  f.write(my_friend.stats_text())
 print('ok')
def SEARCH_FRIENDS(name):
 my_friends = bot.friends()
 friends = my_friends.search(name)
 return friends[0]
def SEND_MESSAGES(friends,message):
 friends.send(message)
def func():
 path = CREATE_TXTPATH()
 GET_FriendSTXT(path)
def func1():
 path = CREATE_PICPATHT()
 IMAGE_SAVE(path)
 PJ_IMAGE(path)
def func2():
 a = onclick()
 b = onclick1()
 a.send(b)
 print('发送成功')
def func3():
 for i in range(50):
  time.sleep(1)
  func2()
def PJ_IMAGE(path):
 length = len(os.listdir(path))
 image_size = 2560
 each_size = math.ceil(2560 / math.floor(math.sqrt(length)))
 x_lines = math.ceil(math.sqrt(length))
 y_lines = math.ceil(math.sqrt(length))
 image = Image.new('RGB', (each_size * x_lines, each_size * y_lines))
 x = 0
 y = 0
 for (root, dirs, files) in os.walk(path):
  for pic_name in files:
   try:
    with Image.open(path + pic_name) as img:
     img = img.resize((each_size, each_size))
     image.paste(img, (x * each_size, y * each_size))
     x += 1
     if x == x_lines:
      x = 0
      y += 1
   except IOError:
    print("头像读取失败")
  img = image.save(os.getcwd() +"/wechat.png")
  print('已完成')

def func4():
 my_friend = bot.friends()
 b = onclick1()
 for i in my_friend[1:]:
  a = i.name
  friend = my_friend.search(a)[0]
  print('正在发送', friend)
  friend.send(b) # 你想要发送的内容
  print('ok')
  time.sleep(1)
window.bind('<Return>', onclick)
click_button = tkinter.Button(window,
        text = '获取好友信息',
        background = 'purple',
        width = 10,
        height = 4,
        command = func)

click_button.pack(side = 'left')
click_button1 = tkinter.Button(window,
        text = '获取好友图片',
        background = 'green',
        width = 10,
        height = 4,
        command = func1)
click_button1.pack(side = 'right')
click_button2 = tkinter.Button(window,
        text = '点击发送信息',
        background = 'blue',
        width = 10,
        height = 4,
        command = func2)
click_button2.pack(side = 'top')
click_button3 = tkinter.Button(window,
        text ='连续发送五十',
        background = 'pink',
        width = 10,
        height = 4,
        command = func3)
click_button3.pack()
click_button4 = tkinter.Button(window,
        text ='群发信息',
        background = 'grey',
        width = 10,
        height = 4,
        command = func4)

click_button4.pack(side = 'bottom')
window.mainloop()

总结

到此这篇关于利用python之wxpy模块玩转微信的文章就介绍到这了,更多相关python wxpy模块玩转微信内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
分享python数据统计的一些小技巧
Jul 21 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
python编程培训 python培训靠谱吗
Jan 17 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
python实现简单的井字棋
May 26 Python
python保存图片的四个常用方法
Feb 28 Python
使用python绘制分组对比柱状图
Apr 21 Python
深入了解Python 方法之类方法 &amp; 静态方法
Aug 17 #Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 #Python
python如何操作mysql
Aug 17 #Python
详解python 内存优化
Aug 17 #Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 #Python
详解Python 中的容器 collections
Aug 17 #Python
Python 解析库json及jsonpath pickle的实现
Aug 17 #Python
You might like
PHP文件系统管理(实例讲解)
2017/09/19 PHP
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
使用js画图之饼图
2015/01/12 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
django认证系统 Authentication使用详解
2019/07/22 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
python清空命令行方式
2020/01/13 Python
浅析python函数式编程
2020/09/26 Python
python绘制高斯曲线
2021/02/19 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
仓管员岗位责任制
2014/02/19 职场文书
三八节主持词
2014/03/17 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
大跃进口号
2014/06/16 职场文书
先进党支部事迹材料
2014/12/24 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
自考生自我评价
2019/06/21 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis