最近想做个微信机器人,主要是为了个人方便。在腾云阁发现这个教程,得到了一些启发。(修改转载已取得腾讯云授权)

技术路径和实现思路

首先编程语言使用了 Python , Python 语法简洁、第三方扩展丰富,也因为这里采用的微信消息框架 itchat 是基于 Python 的。

服务器当然使用腾讯云,这里我使用的是单核 1G 内存的最低配置,因为作为个人用的这个配置绰绰有余了,并且以后有更多用途的时候可以直接升级服务器配置和存储,这就是云服务器的巨大优势。

因为对于大部分人来说,拿到一台崭新的服务器要部署服务是非常麻烦的,所以我也不喜欢,于是乎想到了使用 docker 容器来运行我的代码,这样不用手动去配置服务器的运行环境,我只需要创建一个 docker 镜像就可以了,但是这样感觉还是挺麻烦的,还要安装 docker ,还要上传镜像。然后我发现了 daocloud ,它可以帮助我完成容器管理和镜像生成的工作。

所以我们部署路径是这样的:

编写代码->提交代码到 github 上->daocloud 自动生成 docker 镜像并部署到我们的云服务器上->自动运行

也就是提交代码到分支,然后,然后自动更新发布,服务就这么运行成功了

具体过程

所以对云服务器的配置而言,我只需要为其安装 daocloud 的被控端程序即可,然后就可以再也不用管这台服务器了,太爽了吧~

恰好发现腾讯云也支持了 daocloud 的系统,在为云服务器安装系统的时候选择服务市场-Docker 容器-Daocloud 混合式容器管理平台即可。

哇,那这样岂不是爽上加爽,不用登录服务器做任何配置~拿来即用,真刺激。

安装过程就不多说了,他们也提供了文档,非常简单,两行命令而已,然后我们可以在 daocloud 后台添加我们的主机了。

然后我们去创建一个项目

需要我们设置代码源,可以选择 github 和 coding ,确实比较人性化,那么我们就需要自己去 github 创建好 git 项目了,这里省略过,选择好后就可以创建了。

项目创建成功后我们只需要选择我们的代码分支构建一下就好了,这时容器镜像就创建好了,下来就是部署。

创建一个应用,会提示我们选择镜像来源,这里选择之前构建的镜像

点击部署最新版本就好了

然后我们分别在项目设置和应用设置里配置自动构建和自动部署,这样以后我们只要提交了代码, daocloud 会帮我们自动构建镜像然后部署,不需要我们自己手动操作,只需要专注代码逻辑,不用再操心部署了。

过程就是这么简单,腾讯云服务器作为基础,我们全程不用手动配置自己的服务器,多么轻松惬意。

程序实现

前面重点讲了服务器配置和程序部署,但是实际上部署的程序我们还没讲。

容器打包必须要有一个 Dockerfile 来告诉容器如何构建镜像,为了构建方便我们采用的 daocloud 提供的 python 镜像,以下是 dockerfile 的内容:

FROM daocloud.io/python:3-onbuild

ENTRYPOINT ["python"]

CMD ["run.py"]

可以看到,我们启动服务的文件是

#!/usr/bin/env python3

import bot.xiaoweiwei as wechat

def main():

wechat.run()

if __name__ == "__main__":

main()

import itchat

from target.youku import YoukuData

from target.qqvideo import QQVideoData

from plugins.tuling import get_response

@itchat.msg_register('Text')

def text_reply(msg):

itchat.send('/抠鼻',msg['FromUserName'])

return u'你好,请在群聊里面撩我 /微笑'

@itchat.msg_register('Text', isGroupChat=True)

def group_reply(msg):

if msg['isAt']:

if u'播放量' in msg['Text']:

data = YoukuData()

if not data.check:

return '查询失败!'

num = data.get_play_num()

itchat.send(u'优酷目前累计播放量为:%s' % num, msg['FromUserName'])

data = QQVideoData()

if not data.check:

return '查询失败!'

num = data.get_play_num()

return u'腾讯视频目前累计播放量为:%s' % num

elif u'订阅' in msg['Text']:

data = YoukuData()

if not data.check:

return '查询失败!'

num = data.get_sub_num()

return '目前优酷订阅人数为:%s' % num

elif '详细播放' in msg['Text']:

itchat.send('查询中...', msg['FromUserName'])

data = YoukuData()

if not data.check:

return '查询失败!'

d = data.get_play_num_more()

itchat.send(d, msg['FromUserName'])

data = QQVideoData()

if not data.check:

return '查询失败!'

d = data.get_play_num_more()

return d

else:

return get_response(msg['Text'][5:])

def run():

itchat.auto_login(True,enableCmdQR=2)

itchat.run()

>youku.py

```python

import util

homepage = 'http://i.youku.com/i/UMzg0ODQyNDk4OA==/videos'

class YoukuData(object):

def __init__(self,url=homepage):

self.ulr = url

self.check = True

self.soup = util.get_soup(url)

if self.soup is None:

self.check = False

#获得播放量

def get_play_num(self):

vnum = self.soup.select('.vnum')

if vnum is not None:

x = vnum[0]

n = x.get('title')

num = n

else:

num = '**找不到播放量**'

return num

#获得订阅数

def get_sub_num(self):

snum = self.soup.select('.snum')

if snum is not None:

x = snum[0]

n = x.get('title')

num = n

else:

num = '**找不到订阅数**'

return num

#详细播放量

def get_play_num_more(self):

titles = self.soup.select('.v-meta-title')

nums = self.soup.select('.v-num')

times = self.soup.select('.v-publishtime')

s = ' 优酷视频-最新%d 个视频:\n' % len(titles)

for x in range(len(titles)):

s += str(x+1) + '.'+titles[x].string+'\n 播放量:'+nums[x].string+'\n'

return s

这里程序实现很简单,使用的是 itchat 提供的方法,具体可以参考 itchat 项目https://github.com/littlecodersh/ItChat

总结

以上就是快速实现微信机器人的思路,其实主要想表达的就是现在的云技术对于开发者、对于编程初学者都是非常友好的,我们完全不必要投入过多精力在运维和发布维护上,只需要专注代码就可以。这也是云为我们生活带来的另一个方面的改变吧。

python微信机器人部署服务器_玩法收藏/云服务器/零基础微信机器人实践( Python )...相关推荐

  1. jq写的项目如何部署到静态服务器_如何在阿里云服务器上部署一个Web项目

    准备工作: 1:你得有云服务器! 2:你的云服务器上的tomcat必须正常运行! 如何在云服务器上发布一个Web项目? 1:需要制作好一个Web项目: 2:在本地电脑上tomcat上部署后运行正常: ...

  2. 哪个厂家的监控平台用的云服务器_哪个品牌的云服务器最好用?

    当人们需要去购买某一种产品的时候,很多人第一时间想到的就是去网络上搜索和这个产品有关的信息因为通过这样的方式,它能够让大家在短时间内更迅速的去了解这个产品,比如说当一个公司需要去租用或者是购买云服务器 ...

  3. 初学python的感受和收获_【雕爷学编程】零基础接触Python的一点收获和学习体会...

    前几天在今日头条上看到一则广告,于是交了8.9元学费(还有不少是0学费的体验课),参加了小咖编程的一个四天课程(每天大概要用二小时左右),是Python的入门基础语法课,老师叫喵酱(教义做的非常棒). ...

  4. 【零基础微信小程序】基于百度大脑人像分割的证件照换底色小程序实战开发

    系列文章目录 [零基础微信小程序入门开发]小程序介绍及环境搭建 [零基础微信小程序入门开发]配置小程序 [零基础微信小程序入门开发]小程序框架一 [零基础微信小程序入门开发]小程序框架二 [零基础微信 ...

  5. apex英雄机器人探路者怎么玩_《Apex英雄》探路者机器人怎么玩 探路者机器人技能特性及玩法...

    导 读 apex英雄:在apex英雄游戏中有很多各种各样的玩法特色,游戏中还有很多不同的角色,每种角色都有不同的玩法特性,其中小伙伴们知道探路者机器人怎么样吗?这里小编就来给大家介绍一下Apex英雄探 ...

  6. 机器人出魔切还是三相_英雄联盟:辅助也要去上单,机器人布里茨玩法介绍

    英雄联盟:辅助也要去上单,机器人布里茨玩法介绍 出装方面我们都知道他的被动是可以将法力值化为机的护盾的,而这样的话装备就可以选择魔切,然后再出一个鞋子,为什么不先出三项呢?三项的性价比是比较高的,之后 ...

  7. 乐高凯德机器人_酷炫到底!乐高EV3机器人+冰淇淋的高级玩法,你GET到了吗?...

    原标题:酷炫到底!乐高EV3机器人+冰淇淋的高级玩法,你GET到了吗? 你喜欢吃冰淇淋吗? 甜甜凉凉的冰淇淋圣代, 最适合炎热的夏天啦~ 我们"多才多艺"的EV3机器人, 也会做冰 ...

  8. android微信如何禁用拍一拍,微信拍一拍怎么关闭? 微信拍一拍的玩法

    微信又偷偷添加了"拍一拍"功能,很多已经将微信更新到最新版本的朋友一定发现了新功能拍一拍,不用每次卑微的问对方"你在吗"那么怎么使用呢?那么不想使用这个新功能的 ...

  9. 微信公众号直播的玩法须知(上)

    前几年微信公众号大火,然而受到短视频和直播平台的冲击后,大不如前,因此腾讯推出了微信公众号+直播的形式.那么微信公众号直播有哪些玩法呢?下面跟欢拓云直播小编来看看. 玩法一:卖货直播 做卖货直播比较适 ...

最新文章

  1. 和qc哪个发展更好_一图一表让你秒懂什么叫QC/QA/QM
  2. Win8Metro(C#)数字图像处理--2.14Prewitt 边缘检测
  3. JavaScript 工作原理(一):引擎,运行时,调用堆栈
  4. 多线程(三)之ReentrantLock源码解析
  5. ORACLE数据库表空间备份方案
  6. 数据结构录 之 单调队列单调栈。
  7. java 中 的 字节流!
  8. 【线性筛】【质因数分解】【约数个数定理】hdu6069 Counting Divisors
  9. Acticity 启动 AMS
  10. Zedboard安装桌面系统ubuntu及opencv(2)
  11. php mysql 源码 安装教程_源码安装和配置apache(httpd)和 PHP 和 mysql全过程(一)...
  12. 一行命令配置深度学所需所有环境PyTorch, TensorFlow, CUDA, cuDNN, and NVIDIA Drivers.
  13. 理解Unix/Linux系统中的文件描述符
  14. 删除了计算机网络如何恢复,回收站删除了怎么恢复?回收站清空了怎么恢复简单方法【图文】-太平洋电脑网PConline-太平洋电脑网...
  15. Bailian3260 赛手查询【排序】
  16. android 通过短信找回密码,如何通过强力安卓恢复精灵找回丢失的手机短信?
  17. 大米云如何通过ssh连接云主机
  18. ffmpeg视频格式转换for windows and linux
  19. log4j 2.x版本 日志按天分割,按文件大小分割
  20. python提取一句话中的数字_从Python的字符串列表中提取数字

热门文章

  1. oracle常用命令收集
  2. 离线部署CDH5.16.1及各种坑
  3. 基于java的程序启动出错Could not create the Java virtual machine
  4. 深度学习中用到的一些函数
  5. Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方。
  6. 找不到android的sdk,CircleCI – 找不到Android Studio项目的SDK位置
  7. 使用php创建一个注册表单,如何实现一个简单的注册表单
  8. git bash上传大文件到github
  9. php能否缓存,PHP缓存实现
  10. phoenix Explain Plan 翻译