基于itchat库对微信好友信息的提取以及群发消息

讲解itchat库对微信的处理

将对于itchat中一些方法进行讲解

首先我们引入这个库

import itchat

itchat库的下载可以百度查看教程
首先用这个库实现登陆,运行后会出现二维码,扫码即可,代码

itchat.auto_login(hotReload=True)

括号里的参数表示这次登陆保存一段时间,即在一定时间内运行该程序都不用重新扫二维码登陆。
首先,最重要的一个方法,即获取微信好友所有信息

myfriends = itchat.get_friends()

如果此时print的一下,你就会发现这是json文件,里面有你列表所有好友的身份信息,包括备注、微信名称、个性签名、性别等,当然别人没写的信息就是空。
直接循环即可得出好友列表每个人的信息

    for myfriends in myfriends:
        if myfriends['RemarkName']:     #判断是否有备注。之后['RemarkName']和["UserName"]都是属性值
            print(myfriends['RemarkName'])
            print(myfriends["UserName"])

运行就可以得到我们要的备注和[“UserName”],在信息中,[“UserName”]是一串数字加字母,我们可以通过这个来给好友发信息,之后讲解。
有时候我们可能需要特定好友的信息,那么久需要用

my_friend = itchat.search_friends(name='name')#name是好友名称

这样就可以获取特定好友的信息,是列表信息,如果要处理,我们可以在my_friend后加[0]即可。
然后是发消息

itchat.send(message,toUserName=myfriends["UserName"])

这就是itchat发消息的方法,message就是你要发的信息,toUserName后面赋值你好友的[“UserName”]即可。
最后给出群发信息的代码:

import itchat
import time

def send_news():
        # 登陆你的微信账号,会弹出网页二维码,扫描即可
    itchat.auto_login(hotReload=True)
    myfriends = itchat.get_friends()
    count = 0
    message = '打扰了,最后一条群发测试信息,勿回。'
    for myfriends in myfriends:
        #print(myfriends)
        if myfriends['RemarkName']:
            print(myfriends['RemarkName'])
            print(myfriends["UserName"])
            itchat.send(message,toUserName=myfriends["UserName"])
            time.sleep(0.5)
            count += 1
            print('发送成功')
    print(count)
def main():
    send_news()

if __name__ == '__main__':
    main()

其中设置每一条信息发送间隔为0.5s,因为好像不加时间发送40多条会自动停。

你可能感兴趣的:(初级)