Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meteorix/airtest-douyin
https://github.com/meteorix/airtest-douyin
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/meteorix/airtest-douyin
- Owner: Meteorix
- Created: 2019-02-05T13:36:27.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-02-05T15:59:56.000Z (almost 6 years ago)
- Last Synced: 2024-11-21T14:38:59.775Z (about 1 month ago)
- Language: Python
- Size: 1.06 MB
- Stars: 9
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# airtest-douyin
用[Airtest](https://github.com/AirtestProject/Airtest)做点有意思的事情,先来刷个抖音?
![ide01](./images/ide01.png)
## Get Started
### 环境准备
手边没有android手机,iOS又懒得搭[ios-tagent](https://github.com/AirtestProject/iOS-Tagent)的环境,于是采用最偷懒的方式:
* [夜神模拟器](https://www.yeshen.com/)(可用安卓机代替)
* [AirtestIDE](http://airtest.netease.com/)夜神模拟器装上抖音,用起来跟手机上一样舒服。看了下模拟器占内存200m和CPU 12%左右,还不错。夜神自带了一个多开器,后面分布式刷抖音再玩玩
![nox](./images/nox.png)
### 录制第一版代码
打开AirtestIDE,按照[文档](http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html#id2)连接好模拟器
![ide01](./images/ide01.png)
为了每次能用代码自动打开抖音,先用右上角的安卓助手查看一下抖音的package id
![assistant](./images/assistant.png)
手动加上代码
```python
APP = "com.ss.android.ugc.aweme"stop_app(APP)
start_app(APP)
```然后将AirtestIDE调到安卓App的录制模式,进行一些操作,对应的代码就录制下来了
![ide02](./images/ide02.png)
### 稍微调整代码
自动录制的代码不太好,稍微调整一下
```python
poco(boundsInParent="[0.03194444444444444, 0.02734375]").click()
```直接改成通过`text`来识别按钮
```python
poco(text="我").click()
```后面的上划操作,改成上划屏幕的``60%``
```python
poco("com.ss.android.ugc.aweme:id/ak2").swipe([0, -0.6])
```然后按`F5`运行一遍,一切正常
### 一直刷下去
简单地修改下最后一行代码,就能一直刷下去了
```python
for i in range(10):
poco("com.ss.android.ugc.aweme:id/ak2").swipe([0, -0.6])
sleep(1)
```### 好人点个赞
继续用IDE的录制功能,进行点赞操作,生成下面的代码
```python
poco("com.ss.android.ugc.aweme:id/al8").click()
```原来抖音需要登录之后才能点赞,先手动登录吧,代码里面留个`TODO`
```python
if poco(text="输入手机号码").exists():
# TODO: 自动登录
print("先手动登录一下吧~")
break
```![ide03](./images/ide03.png)
然后我们截个图留念
```
snapshot()
```再运行一下,效果非常好
![snapshot](./images/snapshot.png)
> tips: 点击IDE工具栏的`log`按钮,你还能看到每步操作的报告。
### 提交代码
这个脚本里面没有用到图像识别,单个py文件就够了。于是我们从``douyin.air``里面取出代码文件。这样可以用你喜欢的编辑器打开修改,用python直接运行了。
最终代码在[code/douyin.py](./code/douyin.py),直接python运行。
```shell
python douyin.py
```### To be continued
* 录屏替代截图
* 多开&分布式
* 图像识别小姐姐点赞