一、下载安装itchat模块
二、小实验:获取微信好友头像信息
这需要用itchat模块中的一个方法
itchat
.
get_friends
(
)
#获取微信所有微信好友信息
现在我们导入itchat,打印一下,看看好友信息有哪些字段数据
import
itchat
#itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
itchat
.
auto_login
(
hotReload
=
True
)
#持续登录,只用扫一次二维码即可
friends
=
itchat
.
get_friends
(
)
#获取微信所有好友信息
for
i
in
friends:
print
(i)
这里只拿出几个常用字段说明:
UserName:微信号唯一标识符
NickName:微信名
HeadImgUrl:头像url
RemarkName:备注
Signature:签名
Province:省份
City:城市
从好友信息对象中获取头像图片并存储:
import
itchat
#itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
itchat
.
auto_login
(
hotReload
=
True
)
#持续登录,只用扫一次二维码即可
friends
=
itchat
.
get_friends
(
)
#获取微信所有好友信息
print
(
friends
)
for
i
in
friends
:
img
=
itchat
.
get_head_img
(
userName
=
i
[
'UserName'
]
)
#获取好友头像
path
=
r
'C:\Users\Administrator\PycharmProjects\untitled\Test\微信好友:'
+
i
[
'RemarkName'
]
+
'.jpg'
with
open
(
path
,
'wb'
)
as
f
:
f
.
write
(
img
)
三、使用图灵机器人实现微信自动回复
进入图灵机器人官方网站创建机器人
记录机器人的apikey
进入帮助中心,找到apiv2.0接入教程,里面会有详细的对接教程及一些参数的说明
然后就可以开始通过python itchat和图灵机器人进行对接,实现自动回复消息
import
itchat
import
requests
import
json
def
get_response
(
msg
)
:
url
=
'http://openapi.tuling123.com/openapi/api/v2'
data
=
{
"reqType"
:
0
,
"perception"
:
{
"inputText"
:
{
"text"
:
msg
}
,
"inputImage"
:
{
"url"
:
"imageUrl"
}
,
"selfInfo"
:
{
"location"
:
{
"city"
:
"北京"
,
"province"
:
"北京"
,
"street"
:
"信息路"
}
}
}
,
"userInfo"
:
{
"apiKey"
:
"图灵机器人apikey号"
,
"userId"
:
"what"
#userID随便填一个字符
}
}
data
=
json
.
dumps
(
data
)
#把data变成json格式
response
=
requests
.
post
(
url
,
data
=
data
)
.
json
(
)
#打印出来是个字典
#print(response['results'][0]['values']['text'])#从数据中取出机器人回复的消息文字
return
(
response
[
'results'
]
[
0
]
[
'values'
]
[
'text'
]
)
#get_response('你有什么事吗')#模拟好友发送信息
#python3中可以使用json模块来对json数据进行编解码
#它包含了两个函数:
#json.dumps()对数据进行编码
#json.loads()对数据进行解码
itchat
.
auto_login
(
hotReload
=
True
)
#保持登录
@itchat
.
msg_register
(
itchat
.
content
.
TEXT
)
#装饰器,对下面的函数添加新功能
def
auto_reply
(
message
)
:
#print(message)
only_reply_info
=
'哈哈哈,你又上当了!'
#设置指定回复消息
friend_info
=
message
[
'Text'
]
#获取好友发送的文本信息
friend_id
=
message
[
'FromUserName'
]
#获取好友id
reply_info
=
get_response
(
friend_info
)
#将好友信息发送给图灵机器人
only_friend_info
=
itchat
.
search_friends
(
name
=
'微信备注名'
)
#获取指定好友发送的消息
if
friend_id
==
only_friend_info
[
0
]
[
'UserName'
]
:
itchat
.
send
(
msg
=
only_reply_info
,
toUserName
=
friend_id
)
#规定指定联系人回复消息
else
:
itchat
.
send
(
msg
=
reply_info
,
toUserName
=
friend_id
)
#正常机器人智能回复
if
__name__
==
"__main__"
:
itchat
.
run
(
)