App 端自動化的最佳方案,完全解放雙手!
1. 前言
大家好,我是安果!
之前寫過一篇文章,文中提出了一種方案,可以實現每天自動給微信群群發新聞早報
但是對於很多人來說,首先編寫一款 App 需要一定的移動端開發經驗,其次還需要另外編寫無障礙服務應用,如此顯得有一定難度的
本篇文章將介紹另外一種方案,即:利用前面文章介紹的 AutoJS 來實現自動給微信群傳送新聞早報
2. 爬蟲及服務
為了演示方便,這裡以百度熱搜為新聞早報資料來源,
使用 Requests + BeautifulSoup 按熱度,爬取熱度最高的 15 條資料
import requests
from bs4 import BeautifulSoup
def 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 &
3. 自動化傳送群聊
在 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 將原始碼匯入到手機裝置上
最後,選中原始檔 - 右鍵 - 更多 - 定時任務,設定定時任務即可
4. 最後
如此,即可以實現每天早上給指定群傳送新聞早報的功能
當然,如果涉及多個群聊的傳送,只需要使用 AutoJS 查詢多個目標群聊物件 + 頁面滑動,遍歷進行傳送資訊即可
另外,由於無障礙服務的不穩定性,可以在設定中 AutoJS 應用服務的優先順序,保證程式的穩定執行
如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續輸出更多優質文章的最強動力!
相關文章
- 解放雙手 hosts 自動化 (Vagrant-hostsupdater)
- Python自動化爬取小說,解放你的雙手Python
- “自動化測試解放雙手”,測試自動化好處大盤點!
- 聊聊 PC 端自動化最佳方案 - WinAppDriverAPP
- 聊聊 PC 端自動化最佳方案 - Pywinauto
- 解放雙手 - Android 開發應該嘗試的 UI 自動化測試AndroidUI
- 解放雙手——移動端UI自動化測試框架對比,總有一款適合你!UI框架
- 解放雙手,讓流程自動化軟體助你一臂之力
- 解放雙手 | Jenkins + gitlab + maven 自動打包部署專案JenkinsGitlabMaven
- 解放雙手,基於github travis-ci docker自動化部署java專案GithubDockerJava
- 給你一個全自動的螢幕適配方案(基於SW方案)!—— 解放你和UI的雙手UI
- MyBatis Generator 程式碼自動生成器,從此解放你的雙手MyBatis
- LR.Net解放程式設計師雙手的自動生成程式碼程式設計師
- 分享一下我的三個程式碼自動生成工具類--助你解放雙手
- 分享一下我的三個程式碼自動生成工具類–助你解放雙手
- 解放雙手——你知道軟體測試階段都有哪些主流自動化測試技術嗎?
- ios 自動化,尋求 WebDriverAgent 最佳化方案iOSWeb
- 10行Python程式碼自動清理電腦內重複檔案,解放雙手!Python
- DBeaver如何設定自動重新整理資料庫表的資料,徹底解放雙手!資料庫
- 解放雙手,自動生成“x.set(y.get)”,搞定vo2dto轉換
- ipad + mac mini 自動隨航(最佳化方案)iPadMac
- Ftrans檔案自動化傳輸方案:釋放雙手,讓資料流動更自由!
- 解放程式設計師雙手之Supervisor程式設計師
- 淺談App的啟動最佳化APP
- 自動化代替重複勞動、解放銷售的神器-Zoho CRM系統
- 自動化測試的最佳實踐
- Linux完全自學手冊Linux
- 13安卓手機端自動化框架常用的輔助命令安卓框架
- 使用Clion優雅的完全遠端自動同步和遠端除錯c++除錯C++
- Oracle JD Edwards完全自動化介面設計SCOracle
- 基於發票增值稅OCR API設計自動識別應用系統,從此解放財務雙手API
- 基於gulp的前端自動化方案前端
- 巧用watch命令執行迴圈操作,來解放我們的雙手
- 手自一體化的移動雲測試平臺建設方案
- redis自學(47)服務端最佳化Redis服務端
- 蘇寧影片雲直播客戶端的最佳化方案客戶端
- 常見效能最佳化方案與實用工具 雙 buffer
- 3種方式自動化控制APPAPP