Python實現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 應用服務的優先級,保證程序的穩定運行
到此這篇關於Python實現APP自動化發微信群消息的示例代碼的文章就介紹到這瞭,更多相關Python APP自動發微信群內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python爬蟲網頁元素定位術
- python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎入門)
- Python使用Beautiful Soup實現解析網頁
- python自動化實現自動回復QQ消息
- 詳解如何用Python寫個聽小說的爬蟲