zoukankan      html  css  js  c++  java
  • 用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了

    2. 环境

    本文主要环境如下:

    • Win7

    • 小米5s

    • Python3.7

    • Appium1.5

    • 支付宝10.2.6.7010

    如果对环境搭建不熟悉的话,可以看一下:Python + Appium 自动化操作微信入门我用 Python 找出了删除我微信的所有人并将他们自动化删除了

    3. 实现

    功能实现的基本思路为:

    • 打开支付宝进入蚂蚁森林,收取自己的能量

    • 收取完自己能量后,点击找能量进入好友蚂蚁森林,收取好友能量,以此类推

    接下来我们看一下主要代码实现。

    参数配置代码实现如下:

    1.  
      desired_caps = {
    2.  
          "platformName": "Android", # 系统
    3.  
          "platformVersion": "8.0.0", # 系统版本号
    4.  
          "deviceName": "m5s", # 设备名
    5.  
          "appPackage": "com.eg.android.AlipayGphone", # 包名
    6.  
          "appActivity": "AlipayLogin", # app 启动时主 Activity
    7.  
          'noReset': True # 保留 session 信息,可以避免重新登录
    8.  
      }

    通常大家都会将蚂蚁森林放在支付宝首页,此时我们打开支付宝后直接点击蚂蚁森林选项即可进入。

    代码实现如下:

    driver.find_elements_by_id('com.alipay.android.phone.openplatform:id/home_app_view')[10].click()
    

    进入自己蚂蚁森林之后,开始收取自己的能量,因为新版支付宝不能定位能量球元素了,所以我们需要在能量球可能出现的区域实现点击。收取能量的代码实现如下:

    1.  
      # 收取能量
    2.  
      def collect_energy(driver):
    3.  
          print('开始收取能量')
    4.  
          # 获取手机屏幕宽高
    5.  
          width = int(driver.get_window_size()['width'])
    6.  
          height = int(driver.get_window_size()['height'])
    7.  
          # 能量球可能出现的区域坐标
    8.  
          start_x = 110
    9.  
          end_x = 940
    10.  
          start_y = 460
    11.  
          end_y = 880
    12.  
          for i in range(start_y, end_y, 80):
    13.  
              for j in range(start_x, end_x, 80):
    14.  
                  tap_x1 = int((int(j) / width) * width)
    15.  
                  tap_y1 = int((int(i) / height) * height)
    16.  
                  # 点击指定坐标
    17.  
                  driver.tap([(tap_x1, tap_y1), (tap_x1, tap_y1)], 1000)
    18.  
          print('能量收取完毕')

    自己能量收取完毕之后,点击找能量进入好友蚂蚁森林继续收取能量,代码实现如下:

    1.  
      # 找能量
    2.  
      def search_energy(driver):
    3.  
          print('找能量,收取好友能量')
    4.  
          time.sleep(3)
    5.  
          # 点击找能量
    6.  
          driver.tap([(1000, 1520), (1080, 1580)], 1000)
    7.  
          time.sleep(3)
    8.  
          # 收取好友能量
    9.  
          collect_energy(driver)
    10.  
          time.sleep(3)
    11.  
          # 收取完毕继续找能量
    12.  
          search_energy(driver)

    能量收取的功能实现了之后,我们使用定时任务实现定时收取即可,下面看一下定时任务的实现。

    定时任务的实现我们使用 apscheduler 组件,使用之前需执行 pip install apscheduler 装一下。

    定时任务的代码实现如下:

    1.  
      scheduler = BlockingScheduler()
    2.  
      # collect_main:定时执行的方法
    3.  
      scheduler.add_job(collect_main, 'cron', hour=20, minute=23, second=20)
    4.  
      try:
    5.  
          scheduler.start()
    6.  
      except (KeyboardInterrupt, SystemExit):
    7.  
          pass

    到此,我们利用 Python + Appium 实现定时自动化收取蚂蚁森林能量的工作就完成了。

    学习视频资料:http://www.makeru.com.cn/live/1392_1164.html?s=143793

  • 相关阅读:
    将台湾与山西的资源进行整合,搭建晋台两地商品营销平台
    范姜锋:致力于协助台湾青年创业,融入“一带一路”建设
    不甘于平凡,他靠借钱入行做电器生意,年销售额竟突破亿元?
    研究生接手父亲的事业,当起“猪妹”每天和猪打交道
    面对找不到工作的困难,小伙选择创业开酒吧,月收入竟达到了6万
    django 直接将数据分配给前台
    Centos7下安装与卸载Jdk1.8
    从“挖光缆”到“剪网线”|蚂蚁金服异地多活的微服务体系
    推进“互联网+政务服务” 加快新型智慧城市建设
    推进“互联网+政务服务” 加快新型智慧城市建设
  • 原文地址:https://www.cnblogs.com/jinwenyi/p/14025525.html
Copyright © 2011-2022 走看看