Python创建微信机器人

时间:2023-02-01 02:46:37

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

一、项目介绍

1.微信库选择

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

2.实现原理

我相信有不少同学使用过微信的网页版,而wxpy(底层使用itchat)库就是模拟登录网页端,然后调用微信的api实现操作的,我们可以查看itchat源码发现。
Python创建微信机器人
Python创建微信机器人
总之大家记住,目前wxpyitchat都是模拟网页版微信来操作的。

3.图灵机器人

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

4.整体流程

为了方便大家理解,猪哥给大家画了一个时序图
Python创建微信机器人

二、项目代码

先来张项目结构图压压惊:
Python创建微信机器人

1.下载项目

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

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

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

2.下载wxpy库

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

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

3.运行项目

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

三、总结

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

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

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

请大家转发分享出去,让想学习的同学能免费学习~

Python创建微信机器人的更多相关文章

  1. python+爬虫+微信机器人 打造属于你的网购价格监督利器

    写在最前 程序是为人类服务的,最近正好身边小伙伴们在做球衣生意,当然是去nikenba专区购买了,可是有些热门球衣发布几分钟就被抢完,有些折扣球衣也是很快就被抢售一空,那么我们只能靠自己的眼睛一直盯着 ...

  2. 你的网购价格监督利器——python+爬虫+微信机器人

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:风,又奈何 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  3. Python自制微信机器人:群发消息、自动接收好友

    运营公众号也有半年了,今年5月份开始的,之前一直用一款windows工具来运营自动接受好友请求.群发文章.自动回复等操作,但颇有不便. 举几个场景: 突然在外面看到一篇文章很好,临时写了一篇,想群发一 ...

  4. 用python自制微信机器人,定时发送天气预报

    0 引言 前段时间找到了一个免费的天气预报API,费了好段时间把这个API解析并组装成自己想用的格式了,就想着如何实现每天发送天气信息给自己.最近无意中发现了wxpy库,用它来做再合适不过了.以下是w ...

  5. phantomjs + python 打造一个微信机器人

    phantomjs + python 打造一个微信机器人 1.前奏   媳妇公司不能上网,但经常需要在公众号上找一些文章做一些参考,需要的时候就把文章链接分享给我,然后我在浏览器打开网页,一点点复制过 ...

  6. 用python玩微信(聊天机器人,好友信息统计)

    1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发.如果你想对wxpy有更深的了解请查看:wxpy: 用 Python 玩 ...

  7. python 微信机器人,微信自动回复

    使用python现成的模块 itchat,可以实现,微信机器人的自动回复 其内部原理,是模拟了web版微信的登录,然后进行消息的接收发送,并不是只能用python实现,其他后端语言都可以做到 下面是使 ...

  8. Python给我的小伙伴来个微信机器人

    [本文出自天外归云的博客园] 安装wxpy 首先你得去图灵机器人官网上注册个账号,登录后在机器人设置里面会有一个api_key,下文会用到! 然后说开发环境,我用的是python3环境,事先需要安装一 ...

  9. Python微信机器人

    Python微信机器人 本文目录 一 简介 二 登录微信 三 微信好友男女比例 四 微信好友地域分布 五 微信聊天机器人 一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量 ...

随机推荐

  1. AngularJS拦截器

    AngularJS是通过拦截器提供了一个全局层面对响应进行处理的途径.拦截器实际是$http服务的基础中间件,用来向应用的业务流程中注入新的逻辑,其核心是服务工厂,通过向 $httpProvider. ...

  2. jquery 延迟加载代码

    <!--引入以下两个js文件--> <script type="text/javascript" src="./js/jquery.min.js&quo ...

  3. Android launcher3 开发初始篇

    版本号:1.0 日期:2014.8.26 2014.8.27 2014.11.10 版权:© 2014 kince 转载注明出处         好久没有写博客,也是由于工作比較忙的关系.当然这不是理 ...

  4. 【故障】MySQL主从同步故障-Slave&lowbar;SQL&lowbar;Running&colon; No

    转自:http://www.linuxidc.com/Linux/2014-02/96945.htm 故障现象:进入slave服务器,运行:mysql> show slave status\G  ...

  5. leetcode — remove-duplicates-from-sorted-list

    /** * Source : https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/ * * * Given a so ...

  6. mysql创建表时,设置timestamp DEFAULT NULL报错1067 - Invalid default value for &&num;39&semi;updated&lowbar;at&&num;39&semi;

    问题背景: 线上的linux服务器上的mysql服务器中导出数据库的结构.想要在本地创建一个测试版本 导出后再本地mysql上运行却报错   1067 - Invalid default value ...

  7. vue插件ele使用小坑

    1.ele-table组件中selection如何默认选中 使用官网提供的api-->>Table Methods中的toggleRowSelection,关于这个api基本介绍就不说了. ...

  8. 一键安装lamp环境出现的问题

    前言:之前安装lamp是独立安装的,安装扩展很方便,现在用这个一键安装包,不知道怎么样,尝试一把. Part1:安装过程中出现的问题 error: utf8_mime2text() has new s ...

  9. iOS&colon;多个单元格的删除&lpar;方法二&rpar;&colon;

    前面介绍了万无一失的方法一,这里介绍删除单元格的第二种方式,通过删除单元格中的内容的方式进行操作:(但是这种情况有一个小的弊端,由于单元格重用机制,如果单元格内容一样时,标记的存在会造成误删) 删除前 ...

  10. Ubuntu Server 12&period;04 LTS搭建SVN服务及修改端口

    采用了apache结合svn的方式. 首先安装apache.subversion.svn-apache sudo apt-get install apache2 sudo apt-get instal ...