广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现APP自动化发微信群消息的示例代码
  • 924
分享到

Python实现APP自动化发微信群消息的示例代码

2024-04-02 19:04:59 924人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 前言2. 爬虫及服务3. 自动化发送群聊​4. 最后1. 前言 但是对于很多人来说,首先编写一款 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自动发微信群内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现APP自动化发微信群消息的示例代码

本文链接: https://www.lsjlt.com/news/162356.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作