天天看點

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)

520這一天,也是網絡情人節。就在今天,python聊天機器人竟然對我表白了,并且還自動地和微信裡面的所有人和群聊天。一時間,所有人以為我變成了聊天達人。具體什麼情況,我們慢慢看看怎麼實作的。 運作環境

運作平台:Mac

Python版本:Python3.6

IDE:spyder

wxpy介紹

wxpy 在 itchat 的基礎上,通過大量接口優化提升了子產品的易用性,并進行豐富的功能擴充。

wxpy一些常見的場景:

一些常見的場景

控制路由器、智能家居等具有開放接口的玩意兒

跑腳本時自動把日志發送到你的微信

加群主為好友,自動拉進群中

充當各種資訊查詢

轉發消息

逗人玩

...

# 腦洞太大的就不提了...

總而言之,可用來實作各種微信個人号的自動化操作

安裝wxpy

安裝wxpy非常簡單,如果你擁有pip,請直接按照Github中的方法安裝:

從 PYPI 官方源下載下傳安裝 (在國内可能比較慢或不穩定):

pip3 install -U wxpy

從豆瓣 PYPI 鏡像源下載下傳安裝 (推薦國内使用者選用):

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

登入微信

wxpy 使用起來非常簡單,我們隻需要建立一個bot 對象,程式運作後,會彈出二維碼,掃描二維碼後顯示登陸成功。為了能自動儲存資訊,不需要每次掃碼,隻需要設定cache_path=True. 同時在項目檔案夾下,多了一個wxpy.pkl檔案。

from wxpy import *

#在初始化時便會執行登陸操作,需要手機掃描登陸。

bot = Bot()

#自動儲存登入資訊,就不需要每次掃二維碼

bot = Bot(cache_path=True)

以下為代碼輸出

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)
機器人對我表白

在這特殊的日子裡,機器人對我說了我愛你,也就是自己發給自己資訊。還可以說更多其他的内容,隻需要設定一下send()内容既可。具體代碼如下:

'''

給自己發送“我愛你“

# 在Web微信中把自己加為好友

bot.self.add()

bot.self.accept()

# 發送消息給自己

bot.self.send(" 520,我愛你!")

下圖是運作效果:

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)
指定聊天對象,大膽聊天表白吧

在這麼特殊的一天,你可以使用聊天機器人指定某個人進行聊天,大膽說出自己平常不敢說的話。即使他/她給你回複了,你不好意思回複他。機器人可以幫你自動回複。如何實在不好意思和她聊天,也可以忽略,不用自動回複。

比如,找到微信昵稱或者備注為”馮彬“的好友,然後對他說,“親,在幹嘛呢”。并且自動回複 “嗯,收到你的消息了”。

指定聊天對象,大膽進行表白吧

#指定聊天對象,并發送你想說的話

#還可以發送圖檔,視訊,檔案或者動圖等。可以試一下

my_friend = bot.friends().search('馮彬')[0]

#found = ensure_one(my_friend) //確定找到的是唯一,避免重複

my_friend.send("親,在幹嘛呢")

#如何指定聊天回複你了,聊天機器人自動回複設定好的消息。

@bot.register(my_friend)

def reply_my_friend(msg):

return '{} ,收到你的消息了'.format(msg.text, msg.type)

指定聊天對象,聊天機器人拒絕回複他的消息

ignore_friend = bot.friends().search('馮彬')[0]

@bot.register(ignore_friend)

def ignore(msg):

return

效果如下:

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)
自動回複群裡的消息

群裡的消息太多,回複不過來?可以使用聊天機器人自動回複設定好的内容。比如回複群名為 “[志願者]資料圈”的所有消息,并且不想回複的時候,也可以直接忽略。

指定一個群聊,并且自動回複群裡的消息

boring_group = bot.groups().search('[志願者]資料圈')[0]

@bot.register(boring_group)

return '{} ,收到你的消息了,馬上處理'.format(msg.text, msg.type)

#忽略群裡的消息

#忽略群的消息

#什麼也不做

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)
自動與所有人聊天

好友或者微信群太多,回複不過來?聊天機器人一鍵回複所有人的消息,并且能并行執行。自動聊天機器人是在圖靈機器人的基礎上,進行二次開發實作。因為圖靈的機器人已經很智能了,可以回答很多問題,比如當地的天氣、名詞解釋等内容。圖靈機器人可以在圖靈網站新增賬號,并且建立自己的機器人。比如建立一個叫做“我的機器人的”自動聊天機器人,然後與所有人進行聊天。

#給所有人自動聊天

def auto_replay(text):

url = "http://www.tuling123.com/openapi/api"

api_key ="你注冊的api key"

payload = {

"key":api_key,

"info":text,

"userid":"123456"

}

r = requests.post(url,data=json.dumps(payload))

result = json.loads(r.content)

return "你好"+result["text"]

@bot.register()

def print_message(msg):

print(msg.text

return auto_replay(msg.text)

自動聊天機器人可以智能的回答當地的天氣,并且提醒多加衣服

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)

自動與群聊的效果:

520 | 機器人竟然對我表白了?!用Python假裝自己有女朋友(附代碼)

原文釋出時間為:2018-05-19

本文作者:文摘菌

本文來自雲栖社群合作夥伴“

大資料文摘

”,了解相關資訊可以關注“

”。