python 通过手机号识别出对应的微信性别(实例代码)

yipeiwu_com5年前Python基础

python 通过手机号识别出对应的微信性别,具体代码如下所述:

def getGender(self,tel):
  self.d(resourceId="com.tencent.mm:id/kh").clear_text()
  self.d(resourceId="com.tencent.mm:id/kh").set_text(tel)    
  self.d(resourceId="com.tencent.mm:id/mf").click()        
  time.sleep(1)
  self.d.watcher("AccNotExist").when(text="该用户不存在").click(resourceId="com.tencent.mm:id/kd")
  self.d.watcher("AccException").when(text="被搜帐号状态异常,无法显示").click(resourceId="com.tencent.mm:id/kd"
  self.d.watchers.run()
  AccNotExist = self.d.watcher("AccNotExist").triggered
  AccException = self.d.watcher("AccException").triggered
  OperationFrequently = self.d.watcher("OperationFrequently").triggered
  if AccNotExist:
   self.d.watchers.reset()
   return "用户不存在"
  elif AccException:
   self.d.watchers.reset()
   return "被搜帐号状态异常,无法显示"
  elif OperationFrequently:
   self.d.watchers.reset()
  if self.d(resourceId="com.tencent.mm:id/b3y").exists:
   gender = self.d(resourceId="com.tencent.mm:id/b3y").info['contentDescription']
   self.d(resourceId="com.tencent.mm:id/kb").click() # back
   return gender
  else:
   self.d(resourceId="com.tencent.mm:id/kb").click() # back
   return "用户未设置性别"
def write_excel_xls(self,pathfile, value):
  index = len(value) 
  workbook = xlwt.Workbook() # 新建一个工作簿
  sheet1 = workbook.add_sheet("boy") # 在工作簿中新建一个表格
  sheet2 = workbook.add_sheet("girl")
  sheet3 = workbook.add_sheet("NotSet")
  sheet4 = workbook.add_sheet("NotExist")
  sheet5 = workbook.add_sheet("AccountE")
  def writesheet(self,sheet):
   for i in range(0, index):
     for j in range(0, len(value[i])):
      sheet.write(i, j, value[i][j]) # 像表格中写入数据(对应的行和列)
   workbook.save(pathfile) # 保存工作簿
  writesheet(self,sheet1)
  writesheet(self,sheet2)
  writesheet(self,sheet3)
  writesheet(self,sheet4)
  writesheet(self,sheet5)
def write_excel_xls_append(self,pathfile, sheet_name, value):
  index = len(value) # 获取需要写入数据的行数
  workbook = xlrd.open_workbook(pathfile) # 打开工作簿
  # sheets = workbook.sheet_names() # 获取工作簿中的所有表格
  worksheet = workbook.sheet_by_name(sheet_name) # 获取工作簿中所有表格中的的第一个表格
  rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
  new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
  new_worksheet = new_workbook.get_sheet(sheet_name) # 获取转化后工作簿中的第一个表格
  for i in range(0, index):
   for j in range(0, len(value[i])):
     new_worksheet.write(i + rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入
  new_workbook.save(pathfile) # 保存工作簿
  # print("%s【追加】写入数据成功!" % pathfile)
 
def read_excel_xls(self,pathfile, sheet_name):
  workbook = xlrd.open_workbook(pathfile) # 打开工作簿
  sheets = workbook.sheet_names() # 获取工作簿中的所有表格
  worksheet = workbook.sheet_by_name(sheet_name) # 获取工作簿中所有表格中的的第一个表格
  for i in range(0, worksheet.nrows):
   for j in range(0, worksheet.ncols):
     print(worksheet.cell_value(i, j), "\t", end="") # 逐行逐列读取数据

ps:下面看下python 通过电话号码获取微信性别信息

getWeixinPro.py

# coding:utf-8
import sys,re,xlrd
from xlwt import *
reload(sys)
sys.setdefaultencoding('utf8')
from uiautomator import device as d
import unittest
import time
#打开excel
def openExcel(file):
  try:
    data = xlrd.open_workbook(file)
    return data
  except Exception as e:
    print (str(e))
def floatToInt(list):
  realList = []
  for value in list:
    if (type(value) == float):
      value = str(value)
      value = re.sub('\.0*$', "", value)
    value = str(value).rstrip()
    realList.append(value)
  return realList
class Mytest(unittest.TestCase):
  #初始化工作
  def setUp(self):
    print ("--------------初始化工作")
  #退出清理工作
  # def tearDown(self):
  #   print ("--------------退出清理工作")
  #测试
  def test_33(self):
    # d.screen.on()
    file='1.xlsx'
    print("check[+] %s" % file)
    data = openExcel(file)
    sheets = data.sheets()
    table=sheets[0]
    writeFile = Workbook(encoding='utf-8')
    # 指定file以utf-8的格式打开
    writeTable = writeFile.add_sheet('微信号-性别')
    for row in range(table.nrows):
      tel=floatToInt(table.row_values(row))[0]
      if not d(resourceId="com.tencent.mm:id/h2").exists:
        if d(resourceId='com.tencent.mm:id/h7').exists:
          d(resourceId='com.tencent.mm:id/h7').click()
      if d(resourceId="com.tencent.mm:id/h2").exists:
        d(resourceId="com.tencent.mm:id/h2").clear_text()
        d(resourceId="com.tencent.mm:id/h2").set_text(tel)
        d(resourceId='com.tencent.mm:id/b20').click()
        d.watcher(tel).when(resourceId="com.tencent.mm:id/aes").when(text="确定") \
          .click(text="确定")
        d.watchers.run()
        isTriggered=d.watcher(tel).triggered
        print(isTriggered)
        if isTriggered:
          d.watcher(tel).remove()
        if not isTriggered:
          if d(resourceId='com.tencent.mm:id/agf').exists:
            contentDescription=d(resourceId='com.tencent.mm:id/agf').info['contentDescription']
            print("tel=%s,sex=%s"%(tel,contentDescription))
            writeTable.write(row, 0, tel)
            writeTable.write(row, 1, contentDescription)
          else:
            print("tel=%s,sex=%s" % (tel,"用户没有设置性别"))
            writeTable.write(row, 0, tel)
            writeTable.write(row, 1, "用户没有设置性别")
          if d(resourceId='com.tencent.mm:id/h7').exists:
            d(resourceId='com.tencent.mm:id/h7').click()
        else:
          print("tel=%s,sex=%s" % (tel, "没有该用户"))
          writeTable.write(row, 0, tel)
          writeTable.write(row, 1, "没有该用户")
      time.sleep(3)
    writeFile.save('wx_tel_sex.xlsx')
    print ("--------------测试1")
if __name__ == '__main__':
  # from uiautomator import device as d
  #
  #
  # print(d.info)
  #
  # d.press.power()
  unittest.main()

总结

以上所述是小编给大家介绍的python 通过手机号识别出对应的微信性别,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

详解numpy矩阵的创建与数据类型

详解numpy矩阵的创建与数据类型

Numpy是python常用的一个类库,在python的使用中及其常见,广泛用在矩阵的计算中,numpy对矩阵的操作与纯python比起来速度有极大的差距。 一、 构造矩阵 矩阵的构造...

opencv实现静态手势识别 opencv实现剪刀石头布游戏

opencv实现静态手势识别 opencv实现剪刀石头布游戏

本文实例为大家分享了opencv实现静态手势识别的具体代码,供大家参考,具体内容如下 要想运行该代码,请确保安装了:python 2.7,opencv 2.4.9 效果如下:...

python 环境变量和import模块导入方法(详解)

1、定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹;用来存放模块文件 2、导...

浅谈flask源码之请求过程

Flask Flask是什么? Flask是一个使用 Python 编写的轻量级 Web 应用框架, 让我们可以使用Python语言快速搭建Web服务, Flask也被称为 "m...

玩转python selenium鼠标键盘操作(ActionChains)

用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChai...