昨天想到一个问题,如何才能通过编程脚本,每天给女友发“早安,午安,晚安”呢?

我知道有些人可能不服气了,“程序员哪来的女朋友”

但是你们可以给喜欢的人发一些情话啊关心的话之类的,程序员一般都是比较腼腆的人,有些话怎么说得出口,那么就交给机器人去做吧!

(机器人:mmp)

于是赶紧开始动手在网上查资料,果不其然,和我有相同想法的人很多,很快就找到用浏览器的开发者工具,在console里面加入JavaScript脚本对网页版微信进行控制,定时发送消息,缺点就是要一直开着网页,开着和那个人的聊天窗口。

对照教程进行试验,成功一次之后,就再也不能执行了,换了浏览器重启网页微信都解决不了,于是放弃,去找另外的解决方案。

 

很快就发现python可以写脚本对微信进行定时控制,甚至可以做聊天机器人,并且可以运行在服务器上,真是太棒!

事不宜迟,赶紧动手开始干,作为一个linux和python都是0基础(可能有点夸张,但起码是0.1基础)的纯小白,一路遇到了无数问题,于是决定记录下来,肯定是全网最小白的教程了。

linux或者macos下都会自带python,一般是2.7左右的版本,可以自行升级3.x,但是我在2.7环境下实验成功了,可酌情升级。

升级python3参考这篇教程:linux(服务器)下安装python3

python的微信机器人主要依赖一个叫wxpy的包,我们要导包的话,需要用pip

pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具。

PYTHON包管理工具PIP的基本使用

那怎么安装pip呢,很简单:

sudo apt-get install python-pip

安装完pip,我们可以安装wxpy了,如果还是安装失败,出现如下错误:

Traceback (most recent call last):
File “/usr/bin/pip3”, line 9, in
from pip import main

解决方法是:

修改 /usr/bin/pip 文件
from pip import main
if __name__ == '__main__':
sys.exit(main())

改为:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())

我还碰到了一种错误就是:
Traceback (most recent call last):
File "/usr/bin/pip3", line 11, in
sys.exit(main())
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib/python3.5/locale.py", line 594, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting

解决方法也很简单,在linux命令行下输入以下命令即可:


export LC_ALL=C

 

pip安装wxpy的问题解决了,我们可以参考网上的教程进行脚本配置了,自己编写也可以

python实战===教你用微信每天给女朋友说晚安

首先我现在本地用pycharm写了一个脚本,用pycharm导包的话,就简单的多了,在设置里随便加。

在本地测试终于成功,大半夜登陆上了微信。

接下来是怎么在服务器上运行,因为是小白,我就进入python命令行下,输入代码,首先遇到的问题是,

像素点生成的二维码点阵排列不正常,根本没法扫描,

解决办法就是把微信登录方法中的数字“1”“2”换一下试试,就能解决

bot = Bot(console_qr=2)或者 bot = Bot(console_qr=1)

 

接下来就是登录微信,登录可以成功,但是接下来的代码黏贴进去就报错,感觉linux下应该不是这么写python的,连个文件都没you肯定不对

于是在本地编写xx.py文件用WinSCP上传的服务器

linux下怎么运行python文件呢,超级简单:

python xxx.py

这样就可以运行了,不过xxx.py文件要写绝对路径

 

可以运行之后,再次面临一个问题,本地测试没问题,传到服务器上就发现,有汉字的行数都报错

敏感的我立马意识到肯定是编码问题,

原来python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符。

怎么让服务器的python文件支持UTF-8呢

 

也很简单,在代码第一行加入:

# coding=UTF-8(等号换为”:“也可以)

或者

# -*- coding:UTF-8 -*-

于是终于在服务器跑起来了微信!

还有最后一个问题就是,在“永动的“服务器上,怎么结束掉python脚本的进程呢?

命令如下: ps -ef|grep python

这样就可以看到自己的py文件的进程号码

然后用kill 命令加上进程号就可以结束掉了

 

本文只是对一些问题的解决方案,并不是完整教程,代码怎么写网上随便一搜就有了

通过更详细的配置可以实现自动对话等人工智能

这可能是我离AI最近的一次。。。

参考资料链接:https://blog.csdn.net/sun___shine/article/details/79379519
https://blog.csdn.net/u011554976/article/details/80604004
http://www.cnblogs.com/botoo/p/8622379.html
https://www.cnblogs.com/qiezizi/p/5784985.html
https://blog.csdn.net/cow66/article/details/80069309
https://www.v2ex.com/t/354966
https://blog.csdn.net/jiangop/article/details/77992716
https://blog.csdn.net/waiwai3/article/details/77461276


如果支付遇到问题,请联系我们
Weixin1:Aburauru Weixin2:wanglanyy QQ:95387119
Last modification:September 12, 2018
如果觉得我的文章对你有用,请随意赞赏,点赞也是鼓励!