大数据文摘出品
作者:曹培信
为了响应国家号召,今年过年不出去拜年,不出去走亲戚,开启了“云拜年”新模式。
从年三十到今天,手机上的拜年消息就没停过,大多还是群发,不回复显得很没有礼貌,一一回复又累心劳神。
甚至因为出不了门,七大姑八大姨就更闲了,“云催婚”、“云催娃”也应运而生,如果你也在为此而烦恼,那么你就需要一款能够自动回复拜年信息的小程序,最好还能自动回复各种微信消息,应对七大姑八大姨的花式催婚和催娃。
这么小小的要求,Python 当然可以做到,itchat 包帮你解决一切,没有安装的同学需要先安装,用 Python 操作微信真是好玩到停不下来!
具体思路就是现在图灵机器人网站上注册一个账号,记下自己的 key 码,代码中要用到。然后在 Python 中用 itchat 登录微信,当接受到消息后(可以简单用个 if 函数设置只对特定好友有效),提交到图灵机器人网站并得到回复,而后将此回复再发送给好友。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <span style="color: #008000;">#</span><span style="color: #008000;">引入 itchat 包</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> requests </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> itchat </span><span style="color: #008000;">#</span><span style="color: #008000;">自动登陆(括号内参数可以保持一段时间登录状态)</span> <span style="color: #000000;">itchat.auto_login () </span><span style="color: #008000;">#</span><span style="color: #008000;">name = itchat.search_friends (name=u'曹培信')</span><span style="color: #008000;"> #</span><span style="color: #008000;">XiaoMing = name[0]["UserName"]</span><span style="color: #008000;"> #</span><span style="color: #008000;">message_concent = 'Hey,dude'</span><span style="color: #008000;"> #</span><span style="color: #008000;">itchat.send (message_concent,XiaoMing)</span> KEY = <span style="color: #800000;">'</span><span style="color: #800000;">440a48c5f559402ea4a0ce9a5dda7fa3</span><span style="color: #800000;">'</span> <span style="color: #0000ff;">def</span><span style="color: #000000;"> get_response (msg): apiUrl </span>= <span style="color: #800000;">'</span><span style="color: #800000;">http://www.tuling123.com/openapi/api</span><span style="color: #800000;">'</span><span style="color: #000000;"> data </span>=<span style="color: #000000;"> { </span><span style="color: #800000;">'</span><span style="color: #800000;">key</span><span style="color: #800000;">'</span><span style="color: #000000;"> : KEY, </span><span style="color: #800000;">'</span><span style="color: #800000;">info</span><span style="color: #800000;">'</span><span style="color: #000000;"> : msg, </span><span style="color: #800000;">'</span><span style="color: #800000;">userid</span><span style="color: #800000;">'</span> : <span style="color: #800000;">'</span><span style="color: #800000;">wechat-robot</span><span style="color: #800000;">'</span><span style="color: #000000;">, } </span><span style="color: #0000ff;">try</span><span style="color: #000000;">: r </span>= requests.post (apiUrl, data=<span style="color: #000000;">data) .json () </span><span style="color: #0000ff;">return</span> r.get (<span style="color: #800000;">'</span><span style="color: #800000;">text</span><span style="color: #800000;">'</span><span style="color: #000000;">) </span><span style="color: #0000ff;">except</span><span style="color: #000000;">: </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> @itchat.msg_register (itchat.content.TEXT) </span><span style="color: #0000ff;">def</span><span style="color: #000000;"> tuling_reply (msg): defaultReply </span>= <span style="color: #800000;">'</span><span style="color: #800000;">I received: </span><span style="color: #800000;">'</span> + msg[<span style="color: #800000;">'</span><span style="color: #800000;">Text</span><span style="color: #800000;">'</span><span style="color: #000000;">] name</span>=itchat.search_friends (name=u<span style="color: #800000;">'</span><span style="color: #800000;">***</span><span style="color: #800000;">'</span><span style="color: #000000;">) </span><span style="color: #008000;">#</span><span style="color: #008000;"> ***表示你想进行自动回复的人的微信昵称(备注名)</span> xiaoming=name[0][<span style="color: #800000;">"</span><span style="color: #800000;">UserName</span><span style="color: #800000;">"</span><span style="color: #000000;">] </span><span style="color: #0000ff;">if</span> msg[<span style="color: #800000;">'</span><span style="color: #800000;">FromUserName</span><span style="color: #800000;">'</span>]==<span style="color: #000000;">xiaoming: reply </span>= get_response (msg[<span style="color: #800000;">'</span><span style="color: #800000;">Text</span><span style="color: #800000;">'</span><span style="color: #000000;">]) </span><span style="color: #0000ff;">if</span> <span style="color: #800000;">'</span><span style="color: #800000;">拜年</span><span style="color: #800000;">'</span> <span style="color: #0000ff;">in</span> msg[<span style="color: #800000;">'</span><span style="color: #800000;">Text</span><span style="color: #800000;">'</span>] <span style="color: #0000ff;">or</span> <span style="color: #800000;">'</span><span style="color: #800000;">新年好</span><span style="color: #800000;">'</span> <span style="color: #0000ff;">in</span> msg[<span style="color: #800000;">'</span><span style="color: #800000;">Text</span><span style="color: #800000;">'</span><span style="color: #000000;">]: itchat.send (</span><span style="color: #800000;">"</span><span style="color: #800000;">愿新春以后,吉吉利利,百事都如意。</span><span style="color: #800000;">"</span>, msg[<span style="color: #800000;">'</span><span style="color: #800000;">FromUserName</span><span style="color: #800000;">'</span><span style="color: #000000;">]) </span><span style="color: #0000ff;">else</span><span style="color: #000000;">: </span><span style="color: #0000ff;">return</span> reply <span style="color: #0000ff;">or</span><span style="color: #000000;"> defaultReply </span><span style="color: #008000;">#</span><span style="color: #008000;">itchat.auto_login (hotReload=True)</span> <span style="color: #000000;">itchat.run () itchat.logout ()</span> |
然后,就是设置关键词,一般的拜年信息会包含“拜年”、“新年好”,我们用 if ‘拜年’ in msg[‘Text’] 来进行关键词判断,如果包含这样的拜年信息,则自动回复一条拜年的问候语。
这样,你就得到了一个既能自动回复拜年信息,也可以针对七大姑八大姨扩展功能的自动回复机器人,简直是春节必备之神器,赶紧用起来吧!