摘要:前言大家好,我是安果之前寫過一篇文章,文中提出了一種方案,可以實現(xiàn)每天自動給微信群群發(fā)新聞早報如何利用爬蟲實現(xiàn)給微信群發(fā)新聞早報詳細但是對于很多人來說,首先編寫一款需要一定的移動端開發(fā)經(jīng)驗,其次還需要另外編寫無障礙服務應用,如此顯得有一定難
大家好,我是安果!
之前寫過一篇文章,文中提出了一種方案,可以實現(xiàn)每天自動給微信群群發(fā)新聞早報
如何利用 Python 爬蟲實現(xiàn)給微信群發(fā)新聞早報?(詳細)
但是對于很多人來說,首先編寫一款 App 需要一定的移動端開發(fā)經(jīng)驗,其次還需要另外編寫無障礙服務應用,如此顯得有一定難度的
本篇文章將介紹另外一種方案,即:利用前面文章介紹的 AutoJS 來實現(xiàn)自動給微信群發(fā)送新聞早報
為了演示方便,這里以百度熱搜為新聞早報數(shù)據(jù)源,
使用 Requests + BeautifulSoup 按熱度,爬取熱度最高的 15 條數(shù)據(jù)
import requestsfrom 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條數(shù)據(jù) return /n.join(top_list[:15])
然后,利用 FastAPI 編寫獲取新聞早報的 API,部署到云服務器上(這里以 CentOS 為例)
import uvicornfrom fastapi import FastAPIfrom 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.lognohup python3 /xag/news_api.py > /news_api.log 2>&1 &
在 VS Code 中編寫 AutoJS 腳本
首先,定義一個給群聊發(fā)送消息的方法
PS:使用 click() 坐標執(zhí)行點擊操作僅適用于 Android 7.0+
//API調(diào)用獲取新聞數(shù)據(jù)var url = "http://host:6789/news";//發(fā)送群聊名稱var group_name = "群聊名稱";//發(fā)送信息給微信群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) //發(fā)送消息 text("發(fā)送").click() log("發(fā)送成功!") //返回到手機桌面 back(); home();
然后,在主線程中啟動一個新的線程,調(diào)用 API 接口,獲取數(shù)據(jù)后將數(shù)據(jù)發(fā)送出去
//線程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 將源碼導入到手機設備上
最后,選中源文件 - 右鍵 - 更多 - 定時任務,設置定時任務即可
如此,即可以實現(xiàn)每天早上給指定群發(fā)送新聞早報的功能
當然,如果涉及多個群聊的發(fā)送,只需要使用 AutoJS 查詢多個目標群聊對象 + 頁面滑動,遍歷進行發(fā)送信息即可
另外,由于無障礙服務的不穩(wěn)定性,可以在設置中 AutoJS 應用服務的優(yōu)先級,保證程序的穩(wěn)定運行
如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強動力!
推薦閱讀
5 分鐘,使用內(nèi)網(wǎng)穿透快速實現(xiàn)遠程桌面
聊聊 Jmeter 如何并發(fā)執(zhí)行 Python 腳本
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/124806.html
摘要:藍湖通過幫助設計師更好地向團隊展示設計圖描述頁面之間的跳轉(zhuǎn)關系。如果設計圖出現(xiàn)改動和更新,藍湖也能自動添加新版本。藍湖基于這些反饋快速迭代,而自動標注功能就是其中一項。 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) ,喜歡的可以關注最新動態(tài),大家一起多交流學習,共同進步,以學習者的身份寫博客,記錄點滴。 工欲善其事,必先利其器。我只是...
摘要:藍湖通過幫助設計師更好地向團隊展示設計圖描述頁面之間的跳轉(zhuǎn)關系。如果設計圖出現(xiàn)改動和更新,藍湖也能自動添加新版本。藍湖基于這些反饋快速迭代,而自動標注功能就是其中一項。 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) ,喜歡的可以關注最新動態(tài),大家一起多交流學習,共同進步,以學習者的身份寫博客,記錄點滴。 工欲善其事,必先利其器。我只是...
閱讀 713·2023-04-25 19:43
閱讀 3907·2021-11-30 14:52
閱讀 3784·2021-11-30 14:52
閱讀 3852·2021-11-29 11:00
閱讀 3783·2021-11-29 11:00
閱讀 3869·2021-11-29 11:00
閱讀 3557·2021-11-29 11:00
閱讀 6105·2021-11-29 11:00