使用 Airtest 超快速开发 App 爬虫 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
itskingname
V2EX    分享创造

使用 Airtest 超快速开发 App 爬虫

  •  
  •   itskingname 2019-01-19 18:14:28 +08:00 14914 次点击
    这是一个创建于 2458 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要 2 分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile ……

    Airtest 是网易开发的手机 UI 界面自动化测试工具,它原本的目的是通过所见即所得,截图点击等等功能,简化手机 App 图形界面测试代码编写工作。

    爬虫开发本着天下工具为我所用,能让我获取数据的工具都能用来开发爬虫这一信念,决定使用 Airtest 来开发手机 App 爬虫。

    详情请戳:https://www.kingname.info/2019/01/19/use-airtest/

    第 1 条附言    2019-01-19 19:33:57 +08:00
    第 2 条附言    2019-01-19 19:34:41 +08:00

    第 3 条附言    2019-01-20 14:09:53 +08:00

    我的书除了实体书以外,也可以在微信阅读上查看

    100 条回复    2019-02-22 16:08:24 +08:00
    xrazor
        1
    xrazor  
       2019-01-19 19:11:35 +08:00
    有意思
    itskingname
        2
    itskingname  
    OP
       2019-01-19 19:35:03 +08:00
    @xrazor 而且不需要连接 USB 线。
    111111111111
        3
    111111111111  
       2019-01-19 19:37:32 +08:00 via Android
    有点意思
    dengtongcai
        4
    dengtongcai  
       2019-01-19 19:45:57 +08:00 via iPhone
    因吹丝挺
    YingJie
        5
    YingJie  
       2019-01-19 19:53:15 +08:00
    厉害了,直接手机爬虫?
    itskingname
        6
    itskingname  
    OP
       2019-01-19 19:59:53 +08:00
    @YingJie 对。
    Yarnus
        7
    Yarnus  
       2019-01-19 19:59:55 +08:00 via iPhone
    666 老哥强 我以前也试过 appium 配合 autojs 用安卓手机爬微信公众号文章 但是效果没你这个好
    ranleng
        8
    ranleng  
       2019-01-19 20:04:18 +08:00 via Android
    有意思
    blueorange
        9
    blueorange  
       2019-01-19 20:17:52 +08:00
    ubuntu 1804 运行不起来?
    itskingname
        10
    itskingname  
    OP
       2019-01-19 20:19:51 +08:00
    @blueorange 官方是支持 Ubuntu 的。我自己在 macOS 和 Windows 做过测试,但是没有在 ubuntu 上测试。
    dapang1221
        11
    dapang1221  
       2019-01-19 20:21:37 +08:00
    惊了,这是什么东西,最骚的是那个 touch()的参数是个图标
    MASAILA
        12
    MASAILA  
       2019-01-19 21:07:03 +08:00 via iPhone
    有意思 研究一下
    newmind
        13
    newmind  
       2019-01-19 21:40:12 +08:00 via Android
    堪称手机版的 selenium
    ctro15547
        14
    ctro15547  
       2019-01-19 21:44:48 +08:00
    uiautomator2、appium 都能做,只抓 UI 数据有局限性,效率低。最近在考虑做这方面的拓展,怎么用 app 爬数据比较效率,还没啥头绪。。
    itskingname
        15
    itskingname  
    OP
       2019-01-19 21:52:00 +08:00 via iPhone
    @newmind 关键是这 Airtest 也支持 Selenium
    itskingname
        16
    itskingname  
    OP
       2019-01-19 21:53:07 +08:00 via iPhone
    @ctro15547 实际上很简单,再配合 mitmproxy 抓包即可。我的书上有详细案例。
    itskingname
        17
    itskingname  
    OP
       2019-01-19 21:53:49 +08:00 via iPhone
    @dapang1221 高级神器。
    d5
        18
    d5  
       2019-01-19 22:11:52 +08:00
    这工具,十分美滋滋,前途无量
    d5
        19
    d5  
       2019-01-19 22:12:16 +08:00
    难以言表的激动,相见恨晚
    itskingname
        20
    itskingname  
    OP
       2019-01-19 22:31:14 +08:00 via iPhone
    @d5 如果对你有帮助,请关注我的公众号,并转发公众号这篇文章,让更多人看到
    akira
        21
    akira  
       2019-01-19 22:37:00 +08:00
    这个扩展一下不就是群控了么
    d5
        22
    d5  
       2019-01-19 22:39:08 +08:00 via iPhone
    @akira #21 自带了群控,有预感成为黑产神器
    itskingname
        23
    itskingname  
    OP
       2019-01-19 22:50:43 +08:00   1
    @d5 我的书上写了如何做更稳定的群控。
    Fulcrum
        24
    Fulcrum  
       2019-01-19 23:05:36 +08:00 via Android
    和 Auto.js 有什么不一样的地方吗
    itskingname
        25
    itskingname  
    OP
       2019-01-19 23:11:31 +08:00
    @Fulcrum 兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile,支持图像识别,自动生成代码。
    akira
        26
    akira  
       2019-01-19 23:45:02 +08:00
    @d5 那估计是了,大幅降低群控的技术难度了啊。。移动端的按键精灵+大漠插件,应用广泛啊。。
    colincat
        27
    colincat  
       2019-01-20 00:35:15 +08:00 via iPhone
    手机其实检测更容易,设备 id 投毒了解一下
    lance7in
        28
    lance7in  
       2019-01-20 02:02:44 +08:00
    试了试
    按图片识别的动作, 慢到无法忍受
    不过这个功能很赞
    资瓷
        29
    omph  
       2019-01-20 07:42:25 +08:00
    神器啊,不过网易也太低调了,都不推广的嘛
    itskingname
        30
    itskingname  
    OP
       2019-01-20 08:04:24 +08:00 via iPhone
    @lance7in 所以那个功能我都是一笔带过
    itskingname
        31
    itskingname  
    OP
       2019-01-20 08:05:00 +08:00 via iPhone
    @omph 网易内部还挺多这种好用不推广的工具
    justin2018
        32
    justin2018  
       2019-01-20 08:35:00 +08:00
    哈哈 谢谢楼主分享了 hohohoho~~~
    itskingname
        33
    itskingname  
    OP
       2019-01-20 08:40:25 +08:00 via iPhone
    @justin2018 好用请关注微信并转发~
    itskingname
        34
    itskingname  
    OP
       2019-01-20 08:41:05 +08:00 via iPhone
    @lance7in 基于 pillow 做的识别
    cz208209
        35
    cz208209  
       2019-01-20 09:06:42 +08:00
    这个抢红包快吗
    pango
        36
    pango  
       2019-01-20 10:16:59 +08:00
    哈哈,我的一堆旧手机有用武之地了
    itskingname
        37
    itskingname  
    OP
       2019-01-20 10:40:54 +08:00 via iPhone
    @laucie 很快,而且我还在我的读者群搞了这个开发抢红包程序的比赛。
    BadReese
        38
    BadReese  
       2019-01-20 10:41:58 +08:00
    真是不错
    justin2018
        39
    justin2018  
       2019-01-20 11:09:47 +08:00
    @itskingname Python 爬虫开发 从入门到实战 ISBN 9787115490995 这本书么
    itskingname
        40
    itskingname  
    OP
       2019-01-20 11:39:01 +08:00 via iPhone
    cz208209
        41
    cz208209  
       2019-01-20 11:46:40 +08:00
    @itskingname 申请进群,机器人没有反应
    locoz
        42
    locoz  
       2019-01-20 12:05:28 +08:00 via Android
    之前从熊博那里知道了这玩意后就试了一下做群控的效果,写起来是很爽,但是有些骚操作目前还是做不出来,要等后面更新,如果现在要用的话只能是另外写一个 android 原生 app 去搞。
    他们还有个叫 airlab 的云测试服务,就是把你的 airtest 代码丢到他们的手机机房里跑,不过他们也没有很优雅的方式解决群控最恶心的温度控制和网络接入问题,还是直接拿空调和定制机柜怼的。
    itskingname
        43
    itskingname  
    OP
       2019-01-20 12:26:41 +08:00 via iPhone
    @laucie 麻烦再申请一次,备注来自 Airtest
    itskingname
        44
    itskingname  
    OP
       2019-01-20 12:28:20 +08:00 via iPhone
    @locoz 网络接入我目前是购买的电磁屏蔽箱和无线 AP,每 15 台手机一组。
    locoz
        45
    locoz  
       2019-01-20 13:06:57 +08:00 via Android
    @itskingname #44 他们也是这种方案,其实我觉得这种方式还不够优雅,比较麻烦
    Vegetable
        46
    Vegetable  
       2019-01-20 13:38:20 +08:00 via iPhone
    @d5 我已经在考虑能不能原来群控微信了
    kingcc
        47
    kingcc  
       2019-01-20 13:53:06 +08:00
    lz,你的博客貌似好多人打不开,原因是 unpkg.com 被墙了
    itskingname
        48
    itskingname  
    OP
       2019-01-20 14:05:12 +08:00 via iPhone
    @locoz 那就买 Sim 卡。无线控制用 Sim 卡也可以实现,不是非要 WiFi。
    itskingname
        49
    itskingname  
    OP
       2019-01-20 14:05:53 +08:00 via iPhone
    @Vegetable 不用考虑,肯定可以。因为我已经这样用了很久了。
    itskingname
        50
    itskingname  
    OP
       2019-01-20 14:07:26 +08:00 via iPhone
    @kingcc 我都不知道我引用了这个东西
    JCZ2MkKb5S8ZX9pq
        51
    JCZ2MKb5S8ZX9pq  
       2019-01-20 14:13:19 +08:00
    借楼问一句,有啥办法能直接获取使用 app 时 fiddler 得到的数据?
    如果可以的话,配合虚拟操作,直接拿 json 呗。
    sea516
        52
    sea516  
       2019-01-20 14:20:19 +08:00
    用了一下 感觉还不错
    locoz
        53
    locoz  
       2019-01-20 14:23:41 +08:00
    @itskingname #48 我当然知道 SIM 卡能实现,说得好像流量不要钱一样
    itskingname
        54
    itskingname  
    OP
       2019-01-20 14:24:28 +08:00   1
    @JCZ2MkKb5S8ZX9pq 当然可以,我的书上就写了这种方法。请看上面我贴的书的二维码。
    itskingname
        55
    itskingname  
    OP
       2019-01-20 14:24:49 +08:00
    @locoz 用国外的卡啊~
    itskingname
        56
    itskingname  
    OP
       2019-01-20 15:37:19 +08:00
    @JCZ2MkKb5S8ZX9pq 第九章,基于 mitmproxy
    applehater
        57
    applehater  
       2019-01-20 18:23:40 +08:00
    @locoz 手机机柜?网络的话可以用 USB 网卡吗
    locoz
        58
    locoz  
       2019-01-20 18:32:01 +08:00 via Android
    @itskingname #55 有渠道吗,介绍一下
    locoz
        59
    locoz  
       2019-01-20 18:34:27 +08:00 via Android
    @applehater #57 目前没看到用 USB 网卡的。。
    itskingname
        60
    itskingname  
    OP
       2019-01-20 19:38:02 +08:00
    @locoz 有渠道,但是不能介绍。
    huruwo
        61
    huruwo  
       2019-01-20 21:46:54 +08:00 via Android
    游戏可以吗
    itskingname
        62
    itskingname  
    OP
       2019-01-20 22:04:56 +08:00 via iPhone
    @huruwo unity 开发的游戏和 coco 开发的游戏都可以
    thursday
        63
    thursday  
       2019-01-20 22:21:48 +08:00
    @itskingname 基于 pillow 做的识别 有类似的开源项目吗 。 判断一个图片 是否包含另外一个图片
    huruwo
        64
    huruwo  
       2019-01-20 22:35:25 +08:00 via Android
    @itskingname 嗯 看到了
    huruwo
        65
    huruwo  
       2019-01-20 22:37:56 +08:00 via Android
    我现在就是从事 app 爬虫工作 一个人操作 500 多台手机 不知道你这个和其他测试框架有什么比有什么优势呢 比如 appium 这种
    huruwo
        66
    huruwo  
       2019-01-20 22:41:00 +08:00 via Android
    @lance7in 估计是计算量的问题 换个高速 u 可能会快
    itskingname
        67
    itskingname  
    OP
       2019-01-20 22:54:41 +08:00 via iPhone
    @thursday Python 的 pillow 这个库本身就有这个功能
    itskingname
        68
    itskingname  
    OP
       2019-01-20 22:56:30 +08:00 via iPhone
    @huruwo 实际上他们底层的原理都是差不多的。Airtest 好在对开发友好,能图像识别,并且不用插 USB 线就能控制手机。
    fireapp
        69
    fireapp  
       2019-01-20 23:29:42 +08:00 via iPhone
    其实简单的直接可以 adb shell 算点坐标能达到同样效果,14 年的时候就这么干过
    itskingname
        70
    itskingname  
    OP
       2019-01-20 23:32:59 +08:00 via iPhone
    @fireapp 点坐标最麻烦的问题在于不同分辨率的代码不通用。
    huruwo
        71
    huruwo  
       2019-01-20 23:36:29 +08:00 via Android
    @itskingname 试用了 感觉很好 但是图像识别速度确实捉急
    我再继续使用下 一周后再分享个心得体会
    itskingname
        72
    itskingname  
    OP
       2019-01-20 23:43:36 +08:00 via iPhone
    @huruwo
    huruwo
        73
    huruwo  
       2019-01-20 23:49:10 +08:00 via Android
    @fireapp 简单的坐标不适合复杂的操作
    比如突然出现的弹窗 点击特定的文字 图标 但是位置不固定 等等
    liyuanzao
        74
    liyuanzao  
       2019-01-21 02:13:27 +08:00
    支持校友,同时买一本书学习下,因为也经常在清洗和抓取数据。学习了一下你的博客,很有启发,。 @itskingname
    TaoQAQ
        75
    TaoQAQ  
       2019-01-21 09:04:13 +08:00
    AutoJs 了解一下
    soulmine
        76
    soulmine  
       2019-01-21 09:51:23 +08:00
    appium 了解一下 首先你不可能要 大批量或者爬几个月的时候 爬东西挂台真机 第二 挂台虚拟机也不现实 第三 这东西不像 chromeless 有 aws 的 serverless 可用性挺 emmmm 的
    itskingname
        77
    itskingname  
    OP
       2019-01-21 10:35:04 +08:00
    @TaoQAQ autojs 支持 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile 吗?能不插 USB 线远程控制吗?
    itskingname
        78
    itskingname  
    OP
       2019-01-21 10:35:30 +08:00
    @soulmine Appium 不好用。
    nicoljiang
        79
    nicoljiang  
    PRO
       2019-01-21 13:33:35 +08:00
    是 微信读书不适合写技术类书籍么?上面代码全是 < >
    itskingname
        80
    itskingname  
    OP
       2019-01-21 13:36:02 +08:00
    @nicoljiang 有点奇怪,我手机上看着完全正常啊,iOS12.1.2
    nicoljiang     81
    nicoljiang  
    PRO
       2019-01-21 13:49:49 +08:00
    @itskingname 可能微信小程序的问题吧
    huruwo
        82
    huruwo  
       2019-01-21 14:06:25 +08:00
    @TaoQAQ AutoJs 就是个玩具
    d5
        83
    d5  
       2019-01-21 14:43:09 +08:00
    @itskingname 已经在微信阅读加入书架~
    itskingname
        84
    itskingname  
    OP
       2019-01-21 15:35:25 +08:00
    @d5 感谢感谢
    HarryQu
        85
    HarryQu  
       2019-01-21 18:46:06 +08:00 via Android
    android 小程序 微信读书看不到图片 , 代码格式也乱了。 下载微信读书 app 可以正常阅读
    itskingname
        86
    itskingname  
    OP
       2019-01-21 19:53:11 +08:00 via iPhone
    @HarryQu 小程序还真是不可靠啊
    honglongmen
        87
    honglongmen  
       2019-01-22 04:30:19 +08:00
    战略性马克.
    honglongmen
        88
    honglongmen  
       2019-01-22 04:36:27 +08:00
    https://www.kingname.info/2018/10/13/use-docker-swarm/ 原来之前那篇帖子是你写的?
    itskingname
        89
    itskingname  
    OP
       2019-01-22 08:36:06 +08:00 via iPhone
    @honglongmen 正是本人。
    Leigg
        90
    Leigg  
       2019-01-22 13:04:31 +08:00 via iPhone
    牛逼!这个周末试试
    leon0918
        91
    leon0918  
       2019-01-22 14:54:05 +08:00
    马可 动手试试
    guanhui07
        92
    guanhui07  
       2019-01-22 17:02:24 +08:00
    厉害
    MuscleOf2016
        93
    MuscleOf2016  
       2019-01-24 10:23:44 +08:00
    貌似模拟器不怎么支持 麻烦。
    itskingname
        94
    itskingname  
    OP
       2019-01-24 11:15:10 +08:00
    @MuscleOf2016 模拟器也是能支持的啊。亲测有效。
    MuscleOf2016
        95
    MuscleOf2016  
       2019-01-24 11:24:15 +08:00
    @itskingname geny 的模拟器吗,噗,昨天试了几次都不可以,刚准备截报错信息的可以了,有毒。
    nsky
        96
    nsky  
       2019-01-25 21:33:26 +08:00 via Android
    不错
    haoxuexiaoyao
        97
    haoxuexiaoyao  
       2019-02-21 12:12:40 +08:00
    这个书的视频网上有么 @itskingname
    itskingname
        98
    itskingname  
    OP
       2019-02-21 17:55:55 +08:00
    @haoxuexiaoyao 你扫描书里面的二维码就可以看到视频。
    1130335361
        99
    1130335361  
       2019-02-22 14:48:11 +08:00
    如果只要爬第 10 页的数据,那就要下拉十次?
    itskingname
        100
    itskingname  
    OP
       2019-02-22 16:08:24 +08:00
    @1130335361 对。就是这样的。人怎么操作,这个程序就怎么操作。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4296 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 05:33 PVG 13:33 LAX 22:33 JFK 01:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86