python微信机器人部署服务器_玩法收藏/云服务器/零基础微信机器人实践( Python )...
最近想做個微信機器人,主要是為了個人方便。在騰云閣發現這個教程,得到了一些啟發。(修改轉載已取得騰訊云授權)
技術路徑和實現思路
首先編程語言使用了 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 )...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机在温室管理中的应用初探,文献综
- 下一篇: 手表里的保时捷更新了!华为WATCH G