溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)APP自動(dòng)化發(fā)微信群消息

發(fā)布時(shí)間:2022-01-13 10:42:51 來源:億速云 閱讀:162 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Python如何實(shí)現(xiàn)APP自動(dòng)化發(fā)微信群消息”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python如何實(shí)現(xiàn)APP自動(dòng)化發(fā)微信群消息”吧!

1. 前言

但是對于很多人來說,首先編寫一款 App 需要一定的移動(dòng)端開發(fā)經(jīng)驗(yàn),其次還需要另外編寫無障礙服務(wù)應(yīng)用,如此顯得有一定難度的

2. 爬蟲及服務(wù)

為了演示方便,這里以百度熱搜為新聞早報(bào)數(shù)據(jù)源,

使用 Requests + BeautifulSoup 按熱度,爬取熱度最高的 15 條數(shù)據(jù)

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條數(shù)據(jù)
    return '\n'.join(top_list[:15])

然后,利用 FastAPI 編寫獲取新聞早報(bào)的 API,部署到云服務(wù)器上(這里以 CentOS 為例)

import uvicorn
from fastapi import FastAPI
from every_news import *

# pip3 install uvicorn
# pip3 install fastapi

# 實(shí)例化
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)

最后,運(yùn)行下面命令使服務(wù)在后臺(tái)運(yùn)行

# 命令行后臺(tái)運(yùn)行
# 日志目錄:/news_api.log
nohup python3 /xag/news_api.py >  /news_api.log 2>&1 &

3. 自動(dòng)化發(fā)送群聊

在 VS Code 中編寫 AutoJS 腳本

首先,定義一個(gè)給群聊發(fā)送消息的方法
PS:使用 click() 坐標(biāo)執(zhí)行點(diǎn)擊操作僅適用于 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) {
    //如果休眠,喚醒設(shè)備
    //注意:為了保證耗電低,設(shè)置睡眠(10s無操作)
    device.wakeUpIfNeeded()

    //打開微信
    app.launch("com.tencent.mm");
    text("微信").waitFor()

    //點(diǎn)擊進(jìn)入到聊天界面
    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ā)送成功!")
    //返回到手機(jī)桌面
    back();
    home();

然后,在主線程中啟動(dòng)一個(gè)新的線程,調(diào)用 API 接口,獲取數(shù)據(jù)后將數(shù)據(jù)發(fā)送出去

//線程
threads.start(function () {
    //獲取新聞
    http.get(url, {}, function (res, err) {
        //錯(cuò)誤
        if (err) {
            log("抱歉!今天獲取新聞失敗。。。")
            return;
        }
        log("今日新聞獲取成功!")
        let html = res.body.string();
        let msg = JSON.parse(html).msg;
        send_wx_msg(group_name, msg)
    });
})

接著,使用 VS Code 將源碼導(dǎo)入到手機(jī)設(shè)備上
最后,選中源文件 - 右鍵 - 更多 - 定時(shí)任務(wù),設(shè)置定時(shí)任務(wù)即可

到此,相信大家對“Python如何實(shí)現(xiàn)APP自動(dòng)化發(fā)微信群消息”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI