前言
Python 作为一种高级编程语言,因其简洁的语法和丰富的库支持,常被用于自动化任务、数据处理及快速原型开发。本文将介绍两个基于 Python 的实际应用场景:一是利用第三方库实现古典文学风格的姓名生成工具,二是使用 ADB 与 Airtest 框架进行移动端应用的自动化操作演示。
本文介绍了利用 Python 进行实际项目开发的两个方向。首先通过调用第三方库实现基于古典文学的姓名生成工具,其次演示了使用 ADB 和 Airtest 框架进行移动端应用的自动化操作,包括启动应用、跳过广告、遍历列表及模拟交互等步骤。内容涵盖环境配置、核心代码逻辑及注意事项,适合希望提升 Python 工程化能力的开发者参考。

Python 作为一种高级编程语言,因其简洁的语法和丰富的库支持,常被用于自动化任务、数据处理及快速原型开发。本文将介绍两个基于 Python 的实际应用场景:一是利用第三方库实现古典文学风格的姓名生成工具,二是使用 ADB 与 Airtest 框架进行移动端应用的自动化操作演示。
姓名往往承载着父母的期望与文化寓意。传统起名多依赖人工查阅典籍或咨询专家,效率较低。利用 Python 可以编写程序,从《楚辞》、《诗经》等经典文本中提取字词,结合随机算法生成具有文化底蕴的名字。
本项目主要依赖 chinesename 库,该库内部使用 jieba 分词技术处理文本。
安装命令如下:
pip install chinesename
导入库并实例化对象,调用 getNames 方法即可生成名字。
from chinesename import ChineseName
# 初始化对象
cn = ChineseName()
# 生成 10 个名字,姓为 python,双字名,性别男
names = cn.getNames(count=10, char_count=2, lastname="python", sex="boy")
for name in names:
print(name)
输出示例:
python 霏霏
python 怀春
python 九月
...
在实际应用中,可以对生成的名字进行评分或解释。例如,结合简单的关键词匹配,筛选出寓意积极的词汇组合。此外,还可以将结果导出为 Excel 文件,方便批量处理需求。
在软件测试或特定业务场景中,需要模拟用户操作手机应用。通过 ADB(Android Debug Bridge)和 Airtest 框架,可以实现对 Android 应用的自动化控制,包括启动应用、点击元素、滑动屏幕等。
pip install airtest
pip install poco
adb devices 查看设备状态。首先获取应用的包名和初始 Activity。以某新闻类应用为例,包名为 com.songheng.eastnews。
import os
def start_app(package_name, activity):
"""
通过 adb 命令启动应用
:param package_name: 应用包名
:param activity: 初始 Activity
"""
cmd = f'adb shell am start -n {package_name}/{activity}'
os.popen(cmd)
start_app('com.songheng.eastnews', 'com.oa.eastfirst.activity.WelcomeActivity')
启动后通常会有广告页面,需识别并点击跳过按钮。使用 Airtest 的图像识别或 UI 树结构定位元素。
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco()
# 等待跳过广告元素出现
try:
ads_element = poco(text='跳过广告').wait_for_appearance(10)
except Exception:
pass
if ads_element.exists():
ads_element.click()
进入主界面后,可获取列表元素进行遍历。需注意过滤无效内容(如广告位)。
# 获取新闻列表容器
list_container = poco('com.songheng.eastnews:id/g_')
news_list = list_container.children()
for item in news_list:
# 检查是否为有效新闻项
if not item.exists():
continue
# 获取标题文本
title_elem = item.offspring('com.songheng.eastnews:id/pb')
title = title_elem.get_text() if title_elem.exists() else ''
# 过滤广告标识
if '广告' in title or item.attr('name') == 'android.widget.FrameLayout':
continue
# 模拟点击进入详情
title_elem.click()
# 执行阅读逻辑...
为了模拟真实用户,需设置随机阅读时长并执行滑动操作。
import time
import random
from datetime import datetime
def simulate_reading(duration=30):
start_time = datetime.now()
while True:
end_time = datetime.now()
interval = (end_time - start_time).seconds
if interval >= duration:
break
# 模拟随机滑动
swipe([0.5, 0.8], [0.5, 0.3], duration=1)
time.sleep(random.uniform(1, 3))
对于视频播放场景,逻辑类似,需定位播放按钮并等待播放完成。注意控制频率,避免触发风控机制。
# 切换至视频 Tab
video_tab = poco('com.songheng.eastnews:id/ko')
video_tab.click()
# 获取视频列表
video_list = poco('com.songheng.eastnews:id/a0z').children()
for video in video_list:
play_btn = video.offspring('com.songheng.eastnews:id/nj')
if play_btn.exists():
play_btn.click()
time.sleep(30) # 模拟观看时长
back_keyevent() # 返回上一页
本文展示了 Python 在文本处理和移动端自动化领域的实际应用。通过调用现有库可以快速构建工具,而结合 ADB 和 Airtest 则能深入底层进行交互控制。掌握这些技能有助于提升开发效率,解决实际问题。开发者应根据具体需求调整代码逻辑,并始终遵循相关法律法规与平台规范。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online