整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

APP爬虫系列3-使用Airtest薅短视频的羊毛

irtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。  另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。我使用Airtest而不适用appium主要是因为Airtest环境搭建非常方便,基本上安装后就把所有需要的工具都集成了,包括python和adb,Airtest中的Python和本机的Python是不一样的,所以要在本机运行还需要额外安装Python库:pip install poco。因为Airtest是网易开发的,所以拥有比较友好的文档和教程。

官方文档

Airtest快速上手教程 https://airtest.doc.io.netease.com/

airtest-ide教程 https://airtest.readthedocs.io/zh_CN/latest/README_MORE.html#example

airtest教程 http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/1_quick_start.html


这次要写的一个例子是抖音极速版赚金币的简单薅羊毛例子,非常简单,主要是为了使用Airtest。

安装Airtest

https://airtest.netease.com/下载对应平台的安装包,安装完后正常启动即可

连接安卓模拟器

打开Airtest,在右侧点击刷新ADB,会出现已经连接到电脑的机器(一定要打开USB调试模式),如果没有的话,就重启ADB,再进行刷新。出现连接机器后,在connect后面的下拉列表出现三个选项:Use javacap、Use ADB orientation、Use ADB touch。为了不出现莫名其妙的问题,最好全部选中,然后点击connect连接,就能显示出系统桌面。

Airtest在执行的过程中,会向手机安装几个软件:Yosemite(一种输入法,主要是执行输入文字)、pocoservice-debug(执行Airtest发来的命令),在连接真机的过程中,报了一个错误Failure [INSTALL_FAILED_OLDER_SDK],手机版本太低,不能安装数据包。我有一个古董机,512运存的,Android版本是4.3,所以测试的时候一定要注意Android版本哦

写代码

这一篇我们主要不是讲Airtest教程,所以不进行详细讲解。这里我推荐一个非常好的学习网站--哔哩哔哩,就是这个二次元编程网站。上面有很多详细的视频教程,花一个小时看一下,再把官方教程过一遍,就差不多了。我们就以实例代码进行简单讲解。代码如下:

from airtest.core.api import *
from airtest.cli.parser import cli_setup
from poco.drivers.android.uiautomation import AndroidUiautomationPoco


class DouYin:
    def __init__(self):
        if not cli_setup():
            auto_setup(__file__, logdir=True, devices=[
                "Android://127.0.0.1:5037/emulator-5554?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH"
            ])
        self.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
        size = self.poco.get_screen_size()
        self.width = size[0]
        self.height = size[1]

    def VisitHome(self):
        self.poco(text="抖音极速版").click()

        # 进入短视频页面后,查找推荐元素是否存在
        self.poco(name='com.ss.android.ugc.aweme.lite:id/amh').wait(30)

        # 找到推荐元素表示已经进入首页,但是视频加载需要一些时间,这里等待5秒
        sleep(5)

        try:
            # 初次打开可能会出现青少年模式选项
            self.poco(text='我知道了').click()
        except:
            pass

    def LoopMove(self):
        start_pos = (0.5 * self.width, 0.8 * self.height)
        end_pos = (0.5 * self.width, 0.2 * self.height)
        while True:
            # 从底部滑到上面,切换视频
            swipe(start_pos, end_pos, duration=1)

            # 每个视频观看20秒
            sleep(20)


if __name__ == '__main__':
    douyin = DouYin()
    douyin.VisitHome()
    douyin.LoopMove()

在使用py脚本运行时,如果是Linux或者macOS的用户,请注意看运行结果是不是有报错,提示adb没有运行权限。

官方文档已经给我们提示过了

cd /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac
chmod +x adb

主要是auto_setup中连接设备的配置,官方文档中这样解释

我们在连接中增加了参数设置cap_method、ori_method、touch_method,分别对应工具上的三个选项,不设置连接会出问题。

get_screen_size获取屏幕大小,这样对于不同的设备,不同的分辨率,滑动距离都是一样的。poco(text="抖音极速版").click()搜索屏幕上的“抖音极速版”元素,点击打开。要保证抖音在首页显示,如果不在首页要做滑动处理。sleep(5)视频加载需要时间,所以这里我们静候5秒swipe(start_pos, end_pos, duration=1)执行滑动操作,设置起点和终点以及滑动时间

然后就可以一直薅羊毛了,各种短视频都可以,当然安装完APP后,先手动打开登陆一下软件更好,这样我们的自动化操作就不需要做这些步骤了。

国工商银行、中国农业银行、中国银行和中国建设银行于2019年9月11日至9月15日同时办理中华人民共和国成立70周年双色铜合金纪念币两批次的预约业务。公众可通过上述四家银行业金融机构官方网站或前往其营业网点进行预约登记。

中国银行负责天津、山西、福建、湖北、湖南、广西、重庆、陕西等地区;

如果你不在上面地区,请点击下面相应银行进行预约。

中国农业银行负责江苏、安徽、江西、山东、海南、贵州、西藏、青海、新疆等地区;

中国工商银行负责上海、内蒙古、辽宁、吉林、广东(含深圳市)、四川等地区;

中国建设银行负责北京、河北、黑龙江、浙江、河南、云南、甘肃、宁夏等地区。

中华人民共和国成立70周年双色铜合金纪念币每人预约、兑换限额为20枚

中华人民共和国成立70周年双色铜合金纪念币第一批次于2019年9月19日至9月23日办理预约兑换第二批次于2019年10月25日至10月30日办理预约兑换。公众可按照约定的时间,持在预约系统中登记的有效身份证件,前往约定的营业网点办理预约兑换业务。

中行新中国成立70周年纪念币微信预约入口

注:入口要预约开始时才开放,未到时间会显示“暂无可预约的产品”。

中行新中国成立70周年纪念币网站预约入口

中行可直接复制以下网址:https://cmcoins.boc.cn/BOC15_CoinSeller/welcome.html

ttp://www.gdyfs.com/xpj/

[原标题:《乐高世界》无限获取金币方法图文一览]

有2种方式在乐高世界得到无限金币!

这里所说的无限金币的获取方法并不是直接就获得999999的金币,更像是一个种植钱币的菜地。

方式1(已尝试):

这种方法是比较简单的。

步骤1,去模子”菜单,然后选择一个对象。

步骤2,推荐购买比较便宜的对象,例如一朵花。

购买之后你就可以在地图上无限的进行制造这朵花。

步骤3,现在开始无限制造花吧。

步骤4。现在通过破损花朵。来获得金币,每一个花朵都能够获得金币。

步骤5,当你打破了花朵你就会获得硬币。可以说你只花了很少的钱购买一朵花的模子,却获得了无限量的金钱,固然这是比较需要时间的。

方式2(未尝试)

这种方式很难但它需要更少的时间。

步骤1。找到一个宝箱(这就是为什么第二的方式更难-宝箱是罕见的)。

步骤2。打开它,得到一些东西。

步骤3。开始破损它得到硬币。

因为一些缘故原由,是无法破损的,在你破损它的时候并不会消失。也会产生金币。

云浮在线,详情请访问:http://www.gdyfs.com/yx/20150606/060625SD92015.html