Python创建微信机器人「建议收藏」

Python创建微信机器人「建议收藏」微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话:因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧!一、项目介绍1.微信库选择python关于开发微信的库主要有it…

大家好,又见面了,我是你们的朋友全栈君。

微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话:
在鲁迅
因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧!
聊天截图

如何监听别人的消息?如何实现放撤回?扫描下方二维码关注微信公众号「 裸睡的猪 」回复:微信机器人 即可获取教程!

在这里插入图片描述

一、项目介绍

1.微信库选择

python关于开发微信的库主要有itchatwxpy,而wxpy底层是调用的itchat,所以如果你只是要使用的话建议使用wxpy库,它比其他的库都要优雅,更面向对象,而且深度整合了图灵机器人小i机器人;而itchat扩展性更好,如果你想自己开发一个自己的微信库那建议选itchat

2.实现原理

我相信有不少同学使用过微信的网页版,而wxpy(底层使用itchat)库就是模拟登录网页端,然后调用微信的api实现操作的,我们可以查看itchat源码发现。
用户代理信息
将代理信息放在请求头中
总之大家记住,目前wxpyitchat都是模拟网页版微信来操作的

3.图灵机器人

既然可以模拟网页微信了,那又如何做到自动回复呢?这里我们就使用到了图灵机器人,大家可以在他们的官网(http://www.tuling123.com)免费注册账号,然后申请一个免费的机器人,每个人最多免费申请五个机器人。
图灵机器人
我会在项目代码中给一个默认的apikey,让大家不用下载就可以尝试,但是还是建议自己去申请,因为这个默认的apikey有调用次数限制,况且这算是一笔免费的财富呢!

4.整体流程

为了方便大家理解,猪哥给大家画了一个时序图
机器人工作原理时序图

二、项目代码

先来张项目结构图压压惊:
项目结构

1.下载项目

猪哥已经把项目放在了GitHub上,群里有小伙伴反馈不会使用github,这里我就详细讲一下如何从github上下载项目。

注意:github与git不是同一个东西,github是全球最大的同性恋交友论坛,在这里我们不比颜值与财富,只比谁的项目star多,star越多也就说明你越吸引同性的喜欢与爱慕,甚至连你的同事也会爱上你!而git是项目管理工具,github上的项目就是用git来管理,项目管理工具另一派系是svn。

交个朋友吧
首先找到你需要下载的项目,然后点击Clone or download,然后点击右侧的复制按钮,猪哥这个项目的地址是:https://github.com/pig6/wxrobot
复制github项目链接
然后打开你的pycharm,选择CSV->Checkout from version control->git,然后粘贴刚才复制的项目链接。
git下载项目
克隆项目
最后pycharm可能会提示你使用 新窗口打开 还是用 当前窗口 打开,猪哥一般习惯使用 新窗口(New Window) 打开,这样可以避免多个项目开发时造成混乱。

2.下载wxpy库

项目下载下来之后,因为没有安装必须的库wxpy,pycharm可能会有如下提示,这时我们点一下install就可以。
缺少库提示
如果没有出现安装库提示的话,我们可以在Setting->Project->Project Interpreter里面添加wxpy库。
下载库
或者使用以下命令下载wxpy库,如果你是pip3则替换下面的pip。

pip install -U wxpy -i “https://pypi.doubanio.com/simple/”

3.运行项目

你可以按右上角的绿色三角形按钮,也可以右键项目然后点击run
run
运行之后弹出登录二维码,手机微信扫一扫点击确定登录即可和好友聊天。
登录二维码

三、总结

首先感谢大家的耐心阅读,考虑到有很多零基础的同学所以文章有点长。

猪哥来总结下这几天使用wxpy库开发微信机器人的一些感受吧!

  1. 猪哥用自己的大号测试了一周,也没有出现被封的迹象,只要不发送大量的相同信息就没问题
  2. 即使出现被封也只是会限制你微信登录网页版,手机端不影响使用,正常使用大概一两周就自动解封
  3. 最好用小号测试,一年以内注册的微信号不可以登微信网页版,也就是说不能用测试
  4. 微信网页版有些功能位阉割了,比如:添加好友,拉人入群等,因为怕微商使用机器人到处作恶所以才阉割
  5. 目前只开发了一个功能,先让大家入门,后面的功能会慢慢丰富起来
  6. 目前wxpy基于微信网页登录,很多功能无法实现,后期考虑跟换成iPad登录
  7. 图灵机器人智商有待提高
  8. 最后感谢武亚飞同学提供的微信小号

wxpy官方文档:https://wxpy.readthedocs.io/zh/latest

获取源码:vx扫描下方二维码,关注vx公号「裸睡的猪」,回复:微信机器人 即可获取!
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124843.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java的栈内存和堆内存_Java本地方法栈

    java的栈内存和堆内存_Java本地方法栈Java把内存分成两种,一种叫做栈内存,一种叫做堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。

  • C#中AssemblyInfo.cs文件详解

    C#中AssemblyInfo.cs文件详解1…

  • Spring3 MVC请求参数获取的几种方法

     一、      通过@PathVariabl获取路径中的参数  @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET) public String printMessage1(@PathVariable String id,@PathVariable String name, ModelMa…

  • JSP动态网站开发与项目实战[通俗易懂]

    JSP动态网站开发与项目实战使用占位符更加安全packagecom.cs.model;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importcom.mysql.jdbc.Connection;importcom.mysql.jdbc.Driver;importcom.mysql.jd…

  • WPFのDecorator 、Adorner和AdornerDecorator

    WPFのDecorator 、Adorner和AdornerDecorator

  • verilog hdl与fpga数字系统设计_简易交通信号灯控制系统

    verilog hdl与fpga数字系统设计_简易交通信号灯控制系统1、系统设计要求该交通灯控制器用于主干道与支道公路的交叉路口,要求是优先保证主干道的畅通,因此,设计要求如下。1、平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿过主干道时,才将交通灯切向“主干道红灯,支道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支道红灯”的状态。2、主干道每次通行的时间不得短于1min,支路每次通行的时间不得长于20s,而这两个状态交换过程中出现“主干道黄灯,支道红灯”和“主干道红灯,支道黄灯”的状态,持续时间都为4s。2、设计分析1、用状态

发表回复

您的电子邮箱地址不会被公开。

评论列表(1条)

  • 匿名
    匿名 2022年10月18日 上午8:44

    不错

关注全栈程序员社区公众号