获取朋友圈点赞昵称列表并抽奖,快来看看你中奖了没

昨天我在朋友圈宣传了一次Google 开发者大会的活动:

image-20211117110354853

这次宣传活动后,CSDN官方给予了意外惊喜:

image-20211117110716442

我的朋友圈有100+点赞的,那么这3个手机壳我到底该送给谁呢?于是我决定获取点赞列表的昵称再抽奖。

本程序仅支持windows版本的微信,首先打开朋友圈左上角的消息列表,然后找到肯定是昨天自己发的这条朋友圈的消息:

image-20211117111549491

点击后就能查看点赞列表:

image-20211117111621203

下面我使用uiautomation来获取昵称列表,完整代码如下:

import uiautomation as auto
auto.uiautomation.SetGlobalSearchTimeout(1)

friendWindow = auto.WindowControl(
    searchDepth=1, Name="朋友圈", ClassName='SnsWnd')
friendWindow.SetActive()
item = friendWindow.ListItemControl(searchDepth=6, searchInterval=0.01)
comment_button = item.ButtonControl(Name="评论")
comment_pane = comment_button.GetParentControl().GetNextSiblingControl()
like_pane = comment_pane.GetFirstChildControl()
nicknames = []
for control, depth in auto.WalkControl(like_pane, maxDepth=4):
    if not control.Name or depth != 4 or not isinstance(control, auto.ButtonControl):
        continue
    nicknames.append(control.Name)
print(nicknames)

执行后结果如下:

image-20211117113245726

那么下面我们抽奖就简单了:

import random

random.sample(nicknames, k=3)

然后抽奖结果为:

image-20211117113534762

不排除以上三位好友有没有不需要的,不需要的话可以再继续抽。等CSDN官方实际发放奖励时,就私聊给他们每人一个手机壳定制链接。

几位群友自制的手机壳都是相当不错的:

image-20211117114657323

可能部分童鞋对原理还不太理解,可以参看专栏《UI自动化控制PC版微信

本文的查找思路大致如下:

image-20211117115548944

先找到第一个列表,然后再找到评论按钮,通过评论按钮定位到包含点赞列表的窗格进行递归遍历,递归遍历是按钮的节点,就通过按钮名称获取对应好友的备注。

这次活动感谢各位微信好友的点赞,欢迎各位老哥加我微信,我的微信号是xxmdmst,朋友圈点赞不定期抽奖送红包噢。

Guess you like

Origin blog.csdn.net/as604049322/article/details/121375183