利用AutoJS与Python实现微信群自动发送新闻早报

顾言
顾言
发布时间:2026-10-15 | 2人浏览过
原创

本文介绍一种无需编写原生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自动发微信群的内容,欢迎查阅本站往期文章或继续浏览后续相关教程,感谢大家的支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表