python利用itchat库给微信指定联系人发送信息的时候出现报错IndexError: list index out of range

python登录微信都没有问题,这个地方是哪里出现错误了,无法发送信息。

users=itchat.search_friends("during")

>>> userName= users[0]['UserName']

Traceback (most recent call last):

 File "<pyshell#30>", line 1, in <module>

  userName= users[0]['UserName']

IndexError: list index out of range


如果用以下代码:

>>>itchat.send('Hello, filehelper', toUserName='during')

<ItchatReturnValue: {'BaseResponse': {'Ret': 1, 'ErrMsg': '', 'RawMsg': ''}, 'MsgID': '', 'LocalID': ''}>

>>>

during是一个联系人,但是他说没有收到信息,改成微信号有也不行 ,请问哪里出现问题了。

users=itchat.search_friends("during")

后面加上 print(users)看看

应该是获取的users为空了

可以加上判断:


if len(users)!=0:

userName= users[0]['UserName']

IndexError: list index out of range是由于users为空

另外itchat是基于网页版微信,应该大部分账号都没法登录了https://itchat.readthedocs.io/zh/latest/intro/login/

请问如何使用一般账号,利用itchat库登录微信网页版

还是没有办法给userName赋值

微信网页版应该登陆不了吧,这个错是超索引了,users应该是个空

请问如何利用python给自己的联系人发送信息,无论什么方法,无论任何库都行,想用在树莓上面的,和IDLE上面 一样。

是的,users是一个空列表。

只有等微信自己开放接口了

或者你可以百度看看 UI自动化的东西 使用Python自动化操作微信

appium试试吧,这个一般都是爬微信数据,发消息倒是没试过。看文章说可以


https://www.cnblogs.com/Lyonjiayou/p/12525741.html

users=itchat.search_friends(name="during") # 这句改一下,还找不到的话,name="during"换成nickName="during"
# 给during发送消息
author = itchat.search_friends(nickName='during')[0] # 这里during需要是微信昵称
author.send('greeting, during!')

1、如果你的账号可以登录web版微信,可以用《wxpy》库试试,封装了itchats。

2、如果是给自己号发微信,可以使用 《sever酱》

哦对了,github上有新的开源库,如果无法登录微信web版,可以使用官方的基于ipad的登录协议。