初识itchat-站在巨人的肩膀上python操作微信

简介

itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。

使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。

当然,该api的使用远不止一个机器人,更多的功能等着你来发现。

该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。

如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。

基本操作

python 2.x 安装

1
pip install itchat

python3.x安装

1
pip3 install itchat

登录

1
2
import itchat
itchat.auto_login(True)

hotReload=True 保留登录状态,避免每次测试都需要扫码

itchat.auto_login(hotReload=True)等于itchat.auto_login(True)

输出所有好友昵称及备注

1
2
3
4
5
6
7
friends = itchat.get_friends()

#输出所有好友昵称及备注
for l in friends:
with open('test.txt','a') as f:
f.write('好友昵称:'+l['NickName']+"---好友备注:"+l['RemarkName']+'\n')
#RemarkName 好友备注

搜索好友1.0

1
2
3
4
5
6
7
8
9
friends = itchat.get_friends()
def find_friend(name):
for l in friends:
if l['RemarkName'] == name:
return l
friend = find_friend('猪猪')
#print(str(friend))#打印该好友的相关信息
print(friend['UserName']);
#itchat.send('测试发送',toUserName=friend['UserName'])#发送消息【测试发送】给一名叫【猪猪】的好友

其中UserName索引为itchat发送消息时必填选项(唯一标识符),因此搜索的目的就是找出这一串字符供后续发送时用。

搜索好友2.0

1
2
3
4
5
#查询好友2.0 会多返回一层空的list

# friend = itchat.search_friends(name='猪猪')[0]
#
# print(friend['UserName'])

调用模块自带的方法搜索

输出所有公众号名称

1
2
3
4
5
6
#获取公众号内容1.0

#mps = itchat.get_mps()
for a in mps:
with open('mps.txt','a') as f:
f.write('公众号为:'+a['NickName']+'\n')

搜索公众号1.0

1
2
3
4
5
6
7
8
#搜索公众号
def find_mps(name):
mps = itchat.get_mps()
for a in mps:
if a['NickName'] == name:
return a['UserName']

username = find_mps('T00ls')

定义find_mps函数搜索名为T00ls的公众号

搜搜公众号2.0

1
2
3
#搜索公众号2.0 同获取好友2.0一样
mps = itchat.search_mps(name='T00ls')[0]
print(str(mps))

输出所有群聊

1
2
3
4
5
#获取群组1.0
chatrooms = itchat.get_chatrooms()
for a in chatrooms:
with open('chatrooms','a') as f:
f.write('群组名为:'+a['NickName']+'\n')

搜索群聊1.0

1
2
3
4
5
6
def find_chatrooms(name):
chatrooms = itchat.get_chatrooms()
for a in chatrooms:
if a['NickName'] == name:
return a
print(find_chatrooms('英福泰科'))

搜索群聊2.0

1
2
3
#搜索群组2.0
chatroom = itchat.search_chatrooms(name='英福泰科')
print(str(chatroom))

小结

上午学习了itchat一些简单的使用方法,下午写了此文用作记录,明天根据实际需求,写出两个小demo,一个用来挂在服务器上对微信公众号进行签到,另一个抓取天气预报后发送给群聊或者手机(或许会学习使用AI机器人的接口通过对机器人查询天气,然后将起返回的消息处理后发送)