目錄
?一、準備
?二、開始
三、全部代碼
四、總結
?一、準備
需要bs4庫、requests庫、time庫(python自帶)、wxauto庫。
如果沒有的話請用pip安裝。
在本示例中,使用的是wxauto,所以只能識別桌面上顯示的微信窗口,一旦微信窗口最小化,便無法使用。解決辦法:可以在GitHub上找到wxauto的后臺版本,下載安裝即可。?
pip install bs4
pip install wxauto
pip install requests
?二、開始
1.先把各種庫導入進來,requests是用來獲取回答的,bs4用于解析返回的回答,wxauto用于溝通微信:
from requests import *
from bs4 import BeautifulSoup
from wxauto import WeChat
import time
2.規(guī)定一下wxauto庫的簡稱,以便后期使用,在這里,我使用的簡稱是wx,當然,如果您想,只要符合變量規(guī)則就可以:
wx = WeChat()
3.python自動監(jiān)視,當最后一條消息發(fā)生變動時觸發(fā)命令,這樣,當有新信息收到時就會自動運行下面的命令:
while True:#無限循環(huán)
#比較,自動觀察是否有新消息
msg1 = wx.GetLastMessage
time.sleep(3)
msg2 = wx.GetLastMessage
if msg1 != msg2:#當前后不同時,運行下面的命令
4.打印msg2會發(fā)現(xiàn)形成了一個列表,如('name','message','time'),我們只需要信息,所以只需要列表的第2位。之后再加上青云客的API,get到返回結果,再用BeautifulSoup解析得到的html,可以觀察到返回的是一串html代碼,選取字符串中的第38位到倒數(shù)第20位,最后使用wxauto的SendMsg發(fā)送即可。
url1 = msg2[1]
url2 = "http://api.qingyunke.com/api.php?key=free&appid=0&msg="
url = url2 + url1
ret = get(url)
soup = str(BeautifulSoup(ret.text, 'lxml'))
ans = str(soup[38:-20])
wx.SendMsg("robot:" + ans)
?·在本示例中,使用的wxauto里的函數(shù),全部建立在您已經(jīng)打開微信窗口的基礎上,所以,您需要打開微信窗口,并且選擇好與誰聊天,之后運行您編寫的py代碼,一旦Ta給您發(fā)消息,機器人便能自動在微信中回復。
?但是,我們會發(fā)現(xiàn),當您的網(wǎng)速較慢時,可能會導致消息回復不及時,這時可能就會導致軟件崩潰,所以,當您使用時可以再添加一個try命令,當網(wǎng)速過慢導致無法得到正確回復時,不會崩潰,這就適用于自己搭建一個簡易服務器。
try:
url1 = msg2[1]
url2 = "http://api.qingyunke.com/api.php?key=free&appid=0&msg="
url = url2 + url1
ret = get(url)
soup = str(BeautifulSoup(ret.text, 'lxml'))
ans = str(soup[38:-20])
wx.SendMsg("robot:" + ans)
except:
wx.SendMsg("robot:與服務器通訊異常,請重試")
?當然,如果您搭建的服務器是基于windows的,也可以用pyinstaller打包成exe。這樣便于使用,當然,也可以應用在其他無python環(huán)境的windows電腦上。
方法:
cmd:
cd (文件路徑)
pyinstaller -F (文件名)
?之后就是等待pyinstaller自動打包即可,打包完成后的exe文件會被儲存到dist文件夾中,直接復制出來即可。如果上面的步驟沒有做錯,那么dist文件夾中只會有一個.exe文件,如果出現(xiàn)了許多文件,那就證明您在使用pyinstaller時沒有加上-F(打包為單個文件)。
三、全部代碼
from requests import *
from bs4 import BeautifulSoup
from wxauto import WeChat
import time
wx = WeChat()
while True:
msg1 = wx.GetLastMessage
time.sleep(3)
msg2 = wx.GetLastMessage
if msg1 != msg2:
url1 = msg2[1]
url2 = "http://api.qingyunke.com/api.php?key=free&appid=0&msg="
url = url2 + url1
ret = get(url)
soup = str(BeautifulSoup(ret.text, 'lxml'))
ans = str(soup[38:-20])
wx.SendMsg("robot:" + ans)
2023.1.28 改進:文章來源:http://www.zghlxwxcb.cn/news/detail-402707.html
from requests import *
from bs4 import BeautifulSoup
from wxauto import WeChat
import time
wx = WeChat()
while True:
msg1 = wx.GetLastMessage
time.sleep(3)
msg2 = wx.GetLastMessage
if msg1 != msg2:
url1 = msg2[1]
url2 = "http://api.qingyunke.com/api.php?key=free&appid=0&msg="
url = url2 + url1
try:
ret = get(url)
soup = str(BeautifulSoup(ret.text, 'lxml'))
ans = str(soup[38:-20])
wx.SendMsg("robot:" + ans)
except:
wx.SendMsg("error")
四、總結
在本示例中,我們知道了一個新的python庫--wxauto,同時,我們也知道了怎么get url,當然,本示例中的api您也可以用來開發(fā)一個新的代碼,讓它做更多有意義的事情。文章來源地址http://www.zghlxwxcb.cn/news/detail-402707.html
到了這里,關于python上的免費免登錄微信智能聊天機器人的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!