基于Airtest自动化测试的手机号性别筛选方案解析

Hazel
Hazel
发布时间:2026-10-13 | 3人浏览过
原创

本文介绍利用Python结合Airtest框架,通过图像识别与UI自动化操作,在支付宝应用中实现手机号男女性别的自动筛选。文章提供了核心函数代码,包括图像匹配判断性别、屏幕滑动及数据抓取逻辑,并强调该方法仅适用于技术学习与偶尔使用,严禁用于非法用途。

方案原理概述

本方案的核心逻辑依赖于Airtest框架的自动化测试能力来实现性别识别。

具体实现方式是通过自动化脚本在支付宝界面中对比展示男女头像的图像特征,从而判定并筛选出对应的性别信息。

核心代码实现

以下是实现该功能的具体代码示例:

其中,负责判断性别的核心函数代码如下:

性别判断函数


// An highlighted block
def numbe():
  if exists(Template(r"tpl1574867500094.png", threshold=0.85, rgb=True, target_pos=0, record_pos=(0.779, 0.382), resolution=(960, 540))):
    sex = "女"   
  if exists(Template(r"tpl1574924960910.png", threshold=0.89, rgb=True, target_pos=5, record_pos=(0.779, 0.382), resolution=(960, 540))):
    sex = "男"
  else:
    sex = "不存在"
  namesex = sex
  keyevent("4")
  return namesex

手机滑动(根据手机分辨率自行调整):

// An highlighted block
def scoll():
  try:
    swipe(v1=(629, 1750),v2=(629, 310)) # 滑动距离需要根据手机分辨率自行调整        
  except:
    print("can't go back to the main page")

此外,还需要一个用于处理屏幕滑动以遍历更多条目的筛选函数:

屏幕滑动处理


// An highlighted block
def number():  
  data_list =[]
  for i in range(9): # 根据手机分辨率自行调整
    try:
      title =poco(name="com.alipay.mobile.contactsapp:id/contact_item_name")[i].get_text()
      name = poco(name="com.alipay.mobile.contactsapp:id/concast_from")[i].get_text()
      print(title)
      name_a =name[5:6]
      if title not in data_list and name_a is not "1":
        poco("com.alipay.mobile.contactsapp:id/contact_item_name")[i].click()       
        sexname=numbe()      
        if sexname =="男":
          print(str(sexname))
      
        else:
          print(str(sexname))
          
      else:
        print(name_a)
        print("不存在")
    except:
      print("出错,跳过!")

将上述逻辑整合后的综合代码如下:

综合逻辑整合


// An highlighted block
# -*- encoding=utf8 -*-
__author__ = "liuqingsong"
def numbe():
  if exists(Template(r"tpl1574867500094.png", threshold=0.85, rgb=True, target_pos=0, record_pos=(0.779, 0.382), resolution=(960, 540))):
    sex = "女"   
  if exists(Template(r"tpl1574924960910.png", threshold=0.89, rgb=True, target_pos=5, record_pos=(0.779, 0.382), resolution=(960, 540))):
    sex = "男"
  else:
    sex = "不存在"
  namesex = sex
  keyevent("4")
  return namesex
def scoll():
  try:
    swipe(v1=(629, 1750),v2=(629, 310)) # 滑动距离需要根据手机分辨率自行调整        
  except:
    print("can't go back to the main page")

def number():  
  data_list =[]
  for i in range(9): # 根据手机分辨率自行调整
    try:
      title =poco(name="com.alipay.mobile.contactsapp:id/contact_item_name")[i].get_text()
      name = poco(name="com.alipay.mobile.contactsapp:id/concast_from")[i].get_text()
      print(title)
      name_a =name[5:6]
      if title not in data_list and name_a is not "1":
        poco("com.alipay.mobile.contactsapp:id/contact_item_name")[i].click()       
        sexname=numbe()      
        if sexname =="男":
          print(str(sexname))
          with open(r'./new/男.csv','a',encoding='utf-8') as f:
            f.write("{},{}\n".format(title,sexname))
        else:
          print(str(sexname))
          with open(r'./new/女.csv','a',encoding='utf-8') as f:
            f.write("{},{}\n".format(title,sexname))
      else:
        print(name_a)
        print("不存在")
    except:
      print("出错,跳过!")
a=0
while a<5:#根据手机上号码量的多少自行选择
  number()
  scoll()
  sleep(1)
  a=a+1

使用建议与总结

上述方案基于Airtest实现,虽然执行效率并非最高,但经过简单调整即可用于支付宝真实号码的筛选,效率尚可。该工具仅建议偶尔使用,且必须严格遵守法律法规,严禁用于任何非法用途。如果您有更好的实现方式,欢迎在评论区留言交流。

总结

以上介绍了利用Python实现手机号自动判断男女性别的方法,希望能对读者有所帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表