利用Python完成App端自动化的最佳方案
大家好,我是辰哥~
对于很多人来说,首先编写一款 App 需要一定的移动端开发经验,其次还需要另外编写无障碍服务应用,如此显得有一定难度的。
本篇文章将介绍另外一种方案,即:利用前面文章介绍的 AutoJS 来实现自动给微信群发送新闻早报
1. 爬虫及服务
为了演示方便,这里以百度热搜为新闻早报数据源,
使用 Requests + BeautifulSoup 按热度,爬取热度最高的 15 条数据
import requests
from bs4 import BeautifulSoupdef baidu_top_tipic():"""百度热搜"""requests_page = requests.get('http://top.baidu.com/buzz?b=1&c=513&fr=topbuzz_b42_c513')soup = BeautifulSoup(requests_page.text, "lxml")# 查询soup_text = soup.find_all("div", class_='c-single-text-ellipsis', text=True)top_list = []for index, text in enumerate(soup_text):top_list.append((str(index + 1) + "、" + text.string.strip()))# 取热度最高的15条数据return '\n'.join(top_list[:15])
然后,利用 FastAPI 编写获取新闻早报的 API,部署到云服务器上(这里以 CentOS 为例)
import uvicorn
from fastapi import FastAPI
from every_news import *# pip3 install uvicorn
# pip3 install fastapi# 实例化
app = FastAPI()# 每日新闻
@app.get("/news")
async def rsc_api():msg = get_news()return {"code": 200,"msg": msg}if __name__ == '__main__':uvicorn.run(app='news_api:app', host="0.0.0.0",port=6789, reload=True, debug=True)
最后,运行下面命令使服务在后台运行
# 命令行后台运行
# 日志目录:/news_api.log
nohup python3 /xag/news_api.py > /news_api.log 2>&1 &
2. 自动化发送群聊
在 VS Code 中编写 AutoJS 脚本
首先,定义一个给群聊发送消息的方法
PS:使用 click() 坐标执行点击操作仅适用于 Android 7.0+
//API调用获取新闻数据
var url = "http://host:6789/news";//发送群聊名称
var group_name = "群聊名称";//发送信息给微信群
function send_wx_msg(group_name, send_msg) {//如果休眠,唤醒设备//注意:为了保证耗电低,设置睡眠(10s无操作)device.wakeUpIfNeeded()//打开微信app.launch("com.tencent.mm");text("微信").waitFor()//点击进入到聊天界面var chat_element_bounds = text(group_name).findOne().bounds();//支持Android7.0+click(chat_element_bounds.centerX(), chat_element_bounds.centerY());sleep(3000)id("auj").className("EditText").findOne().setText(send_msg)sleep(3000)//发送消息text("发送").click()log("发送成功!")//返回到手机桌面back();home();
然后,在主线程中启动一个新的线程,调用 API 接口,获取数据后将数据发送出去
//线程
threads.start(function () {//获取新闻http.get(url, {}, function (res, err) {//错误if (err) {log("抱歉!今天获取新闻失败。。。")return;}log("今日新闻获取成功!")let html = res.body.string();let msg = JSON.parse(html).msg;send_wx_msg(group_name, msg)});
})
接着,使用 VS Code 将源码导入到手机设备上
最后,选中源文件 - 右键 - 更多 - 定时任务,设置定时任务即可
3. 最后
如此,即可以实现每天早上给指定群发送新闻早报的功能
当然,如果涉及多个群聊的发送,只需要使用 AutoJS 查询多个目标群聊对象 + 页面滑动,遍历进行发送信息即可
另外,由于无障碍服务的不稳定性,可以在设置中 AutoJS 应用服务的优先级,保证程序的稳定运行
如果你觉得文章还不错,请大家 点赞、分享、留言 下
精彩
建议收藏,22个Python迷你项目(附源码)
有了这款Python神器,新手也会调试代码!
利用Python完成App端自动化的最佳方案相关推荐
- App 端自动化的最佳方案,完全解放双手!
点击上方 "AirPython",选择 "加为星标" 第一时间关注 Python 原创干货! 1. 前言 大家好,我是安果! 之前写过一篇文章,文中提出了一种方 ...
- pythonapp自动化_基于python的App UI自动化环境搭建
Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows: 1.系统变量→新建 JAVA_HOME 变量 E:\Java\jdk1.7.0 jdk安装目录 2.系统 ...
- python实现app自动签到器_利用Python实现App自动签到领取积分
要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...
- Python实现APP UI自动化以及OpenCV图像识别元素
OpenCV图像识别元素代码 # -*- encoding=utf-8 -*-__author__ = 'Jeff.xie'import cv2 import sysdef _tran_canny(i ...
- 利用python开发app实战
我很早之前就想开发一款app玩玩,无奈对java不够熟悉,之前也没有开发app的经验,因此一直耽搁了.最近想到尝试用python开发一款app,google搜索了一番后,发现确实有路可寻,目前也有了一 ...
- app能不能跳转外部h5_利用条件编译在app端使用h5+(网页跳转 实例)
利用条件编译在app端使用h5 在 uni-app 中可以使用条件编译发挥各自平台的特色能力,h5+ 对象为 plus,在js中我们可以通过条件编译调用它 ^_^ 语法格式 // #ifdef APP ...
- 利用Python开发App
我很早之前就想开发一款app玩玩,无奈对java不够熟悉,之前也没有开发app的经验,因此一直耽搁了.最近想到尝试用python开发一款app,google搜索了一番后,发现确实有路可寻,目前也有了一 ...
- 利用Python开发App,来一起看看他是怎么做的。
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文来自腾讯云,作者:Python小二 最近想到尝试用python开发一款app, ...
- [539]利用python开发app
说在前面的话 python语言虽然很万能,但用它来开发app还是显得有点不对路,因此用python开发的app应当是作为编码练习.或者自娱自乐所用,加上目前这方面的模块还不是特别成熟,bug比较多,总 ...
最新文章
- 来呀!AI喊你斗地主——首个搞定斗地主的深度神经网络
- 阿里程序员工作小技巧:理解CPU分支预测,提高代码效率
- 进入编译器后,一个函数经历了什么?
- url主机域名可以省略_网站迁移虚拟主机怎么样能不影响网站优化
- Exchange2010配置实验(七)DAG配置实验
- 解决webview.loadUrl()会加载系统浏览器
- 功能强大的被动开源情报自动化侦察框架
- C++中实现 time_t, tm 相互转换
- Bell数的生成函数推导
- Java SE Eclipse中引入第三方jar及class
- 软件测试理论入门(二)
- 最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
- java 验证码校验_JavaWeb验证码校验功能代码实例
- VC++任意格式时间字符串转换为CTime类型以及计算时差
- (转载)找工作那年,我真的哭了
- 罗马数字和阿拉伯数字转换
- ORB feature to FAST,定向快速旋转简报
- Netcore磊科NW336驱动Win7下载 NW336 150M无线USB网卡驱动
- x86 android 显卡 tablet2,随心而变 ThinkPad Tablet 2评测
- 使用Matlab对大地测量学中的大地坐标和大地空间直角坐标进行相互转换