利用AutoJS与Python实现微信群自动发送新闻早报
本文介绍一种无需编写原生App或利用无障碍服务即可实现微信群自动发送新闻早报的方案。通过Python结合Requests和FastAPI构建新闻获取接口,再使用AutoJS脚本在Android端调用该接口并自动操作微信发送消息。文章详细展示了从数据爬取、服务部署到脚本编写及定时任务设置的全过程,适用于希望实现自动化办公或信息推送的技术人员。
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脚本。
首先,定义一个用于向群聊发送消息的方法。注意:使用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自动发微信群的内容,欢迎查阅本站往期文章或继续浏览后续相关教程,感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









