38:Python编程:20行代码 获取微信好友信息
2018-07-27 本文已影响11人
TensorFlow开发者
前言
之前自己试着调用图灵接口,开发过微信公众号自动回复的机器人。今天简单演示一下,用非常简短的代码,先获取一下微信好友信息,然后再去演示一下如何开发微信好友消息的自动回复。
安装第三方库:itchat
今天我们用到的第三方库是itchat
,如果你也和我一样在用PyCharm开发工具,则导入方式有两种:
1.可以按照我们之前的导入方式,请参考:如何使用PyCharm导入第三方库?
2.更简单的方式是通过:pip
,PyCharm底部标签栏有个Terminal,输入指令如下:
pip install itchat
当你看到提示:
Successfully installed itchat-1.3.10 pypng-0.0.18 pyqrcode-1.2.1
就说明安装成功了。
示例
import itchat
# 登录微信(每次需要扫码登录)
# itchat.login()
# 自动登录
itchat.auto_login(hotReload=True)
# 获取好友
friends = itchat.get_friends()
# 根据微信性别字段Sex,获取对应的文字
def get_sex(sex):
if sex == 1:
return "男"
elif sex == 2:
return "女"
else:
return "其他"
for friend in friends:
print("【昵称】:{}\n"
"【性别】:{}\n"
"【个性签名】:{}\n"
"【城市】:{}\n".format(friend["NickName"], get_sex(friend["Sex"]), friend["Signature"], friend["Province"] + friend["City"]))
其实上面注释已经很清楚了。再做出以下提示:
1.登录微信的两种方式:
微信登录方式一:扫描登录。当运行到该行代码时,会自动弹出一个二维码,扫描登录。这种登录方式,每次运行项目需要扫码重新登录。
# 登录微信(每次需要扫码登录)
# itchat.login()
微信登录方式一
微信登录方式二:自动登录。当运行到该行代码时,会在项目中自动生成一个文件:itchat.pkl
。在半个小时内可以自动登录。
# 自动登录
itchat.auto_login(hotReload=True)
2.获取全部好友:itchat.get_friends()
# 获取好友
friends = itchat.get_friends()
3.遍历好友列表打印出好友信息昵称、性别、个性签名、城市等,还有很多其他信息,此处没有演示。
for friend in friends:
print("【昵称】:{}\n"
"【性别】:{}\n"
"【个性签名】:{}\n"
"【城市】:{}\n".format(friend["NickName"], get_sex(friend["Sex"]), friend["Signature"], friend["Province"] + friend["City"]))
运行结果:
【昵称】:Hasaki
【性别】:男
【个性签名】:生活又要对我这只小猫咪做什么
【城市】:广东珠海
【昵称】:木木
【性别】:女
【个性签名】:读书 健身
【城市】:河南郑州
【昵称】:Siriue
【性别】:男
【个性签名】:A你+
【城市】:广东广州
......(此处省略若干)
【昵称】:晴天
【性别】:女
【个性签名】:傻瓜的心在嘴里,聪明人的嘴在心里。
【城市】:福建厦门
【昵称】:无颜以对
【性别】:男
【个性签名】:最怕你一生碌碌无为,还安慰自己平凡可贵
【城市】:Roma
【昵称】:Lee
【性别】:男
【个性签名】:
【城市】:湖北武汉
补充:你也可以打印出好友模型看下数据结构:
好友模型:
{'RemarkName': '翠翠姐',
'DisplayName': '',
'AttrStatus': 4357,
'RemarkPYInitial': 'CCJ',
'IsOwner': 0,
'StarFriend': 0,
'PYInitial': 'KYMYT',
'RemarkPYQuanPin': 'cuicuijie',
'HideInputBarFlag': 0,
'KeyWord': '', 'NickName': '快乐每一天',
'City': '濮阳',
'OwnerUin': 0, 'VerifyFlag': 0,
'MemberList': <ContactList: []>,
'EncryChatRoomId': '', 'AppAccountFlag': 0,
'Signature': '走自己的路,让别人去说吧!',
'Alias': '', 'ContactFlag': 65539, 'UniFriend': 0,
'SnsFlag': 1, 'PYQuanPin': 'kuaiyuemeiyitian',
'UserName': '@2114996ce5f2106a069c5551eb8793a38f760a201dfb78a48f81956f2ba12b5d',
'HeadImgUrl': '/cgi-bin/mmwebwx-bin/webwxgeticon?seq=648544802&username=@2114996ce5f2106a069c5551eb8793a38f760a201dfb78a48f81956f2ba12b5d&skey=@crypt_fb49ed2_90734d134f29dbaad2fff959eaccd7b8',
'ChatRoomId': 0, 'MemberCount': 0, 'Statues': 0,
'Sex': 2,
'Uin': 0,
'Province': '河南'}
小结
今天简单演示一下,用非常简短的代码,先获取一下微信好友信息,接下来后面再去演示一下如何开发微信好友消息的自动回复。
更多了解,可关注微信公众号:人人懂编程
微信公众号:人人懂编程