当RPA流程自动控制机器人遇到了GitHub Actions和Wxpusher,实现自动推送一体化服务
当RPA流程自动控制机器人遇到了GitHub Actions和Wxpusher,实现自动推送一体化服务
- 流程分析
- 过程实现
- 第一步:python爬虫获取研招网最新动态
- 第二步:WxPusher实现消息推送
- 第三步:部署GitHub actions上实现自动执行工作流程(Workflow)
- 效果展示
- 相关参考
当我要天天看研招网是否更新时,我想到了RPA流程自动控制机器人(Robotic process automation)…
这里的RPA流程自动控制机器人是指什么?你可以简单理解为自动化控制
试想一下,为了获取考研最新动态,你不得不随时随刻盯着研招网,经历过的人都知道那种心理煎熬感…但是如果有这么一套自动化流程程序,每过5分钟,自动获取研招网动态,如果研招网更新,则立马以消息推送或电话的方式通知你,这样你就可以无忧无虑地~~(打开你的游戏啦)专心~~备考啦!
没错,这就是今天要给大家介绍的内容,当你天天要做一件简单、枯燥的事情的时候,不妨试试RPA流程自动控制。接下来我们将会以获取研招网最新动态为例,教你如何打造自己的RPA机器人。本教程需用到如下技术栈:
- GitHub Actions
- Python
流程分析
首先,你需要想办法获取到研招网最新动态,其次,获取到数据后你要对获取的消息进行处理判断,是不是你所需要的信息。这里使用的是python爬虫。
然后,处理好信息后,你需要能够将信息快速准确地送达给你。这里使用的是Wxpusher。
最重要的是如何实现持续监控呢?这里有必要介绍一下触发器的概念了。
触发器,功能顾名思义,就是用于触发,你可以设置触发条件,例如每过多长时间触发,完成特点事件后触发等。
那如何实现触发效果呢?这里是基于GitHub actions实现定时触发效果。
过程实现
第一步:python爬虫获取研招网最新动态
编写python爬虫脚本,爬取研招网站,获取HTML信息并分析是否是今日更新信息:
from push import * # 导入编写的推送模块
import time # 导入python自带时间模块
import urllib.request,urllib.error # 获取网页数据# 编写主函数
def main():baseurl = "https://yz.chsi.com.cn/kyzx/kydt/?start=0" # 网站urlaskURL(baseurl) # 爬取网站
def askURL(url):head = { # 模拟浏览器头部信息,向服务器发送消息"User-Agent": "Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 86.0.4240.198Safari / 537.36"} # 用户代理——表示告诉服务器,我们是什么类型的机器·浏览器(本质上是告诉浏览器,我们可以接受什么水平的文件内容)request = urllib.request.Request(url, headers=head)html = ''try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")print("---正在爬取页面HTML,请稍等---")print(html) #测试:查看页面HTMLdate = time.strftime('%Y-%m-%d',time.localtime(time.time())) # 获取今天日期# print(date)if date in html: # 如果今天有更新的就推送push(1)print("更新啦")else:push(0)print("未更新")except urllib.error.URLError as e:if hasattr(e,"code"): #判断e对象是否包含对应的属性e = str(e.code)print("爬取失败,e.code" + e)if hasattr(e,"reason"):e = str(e.reason)print("爬取失败,e.reason:" + e)return htmlif __name__ == "__main__":#调用函数main()print("运行完毕")
第二步:WxPusher实现消息推送
编写WxPusher模块:
import requests
import jsondef push(status):if status:datas = json.dumps({"appToken":"AT_xxx","content":"研招网更新了!快去看看是不是你需要的内容!","contentType": 1,"summary":"研招网更新了!","uids":["UID_xxxx"],"url":"https://yz.chsi.com.cn/kyzx/kydt/?start=0"})else:datas = json.dumps({"appToken": "AT_xxx","content": "呜呜呜!研招网还没有更新,请耐心等待!!!","contentType": 1,"summary": "研招网还没有更新","uids": ["UID_xxxx"],"url": "https://yz.chsi.com.cn/kyzx/kydt/?start=0"})headers = {'Content-Type': 'application/json'}r = requests.post("http://wxpusher.zjiecode.com/api/send/message", data=datas,headers=headers)print(r.text)print(r.status_code)
第三步:部署GitHub actions上实现自动执行工作流程(Workflow)
- 在GitHub上新建一个仓库,这里以workflow为例,将第一步和第二步编写的脚本放置一个文件夹中(这里以”自动化爬取研招网更新状态“为例)上传至GitHub根目录下。
- 点击Actions,建立你的工作流(workflow)
- 在workflow中编写如下自动化脚本
# 这是帮助您开始操作的基本工作流程name: 自动获取研招网更新状态# 控制何时运行工作流(每5分钟运行一次)
on:schedule:- cron: '*/5 * * * *'# 工作流运行由一个或多个作业组成,这些作业可以顺序或并行运行
jobs:# 这个工作流包含一个名为“job1”的作业。job1:# 作业将在其上运行的系统runs-on: ubuntu-latest# 步骤表示将作为作业的一部分执行的任务序列steps:# 克隆仓库- name: "Checkout codes"uses: actions/checkout@v2# 初始化Python环境- name: "Setup Python"uses: actions/setup-python@masterwith:python -version: 3.8# 下载对应库- name: "install dependencies"run: |# 更新pippip install requests# 运行脚本- name: "run Python"run: |python ./自动化爬取研招网更新状态/web_spider.py
效果展示
一旦其检测到研招网更新啦,就会给你的微信推送
最后欢迎关注我的GitHub,点亮一颗小新星
https://github.com/Mr-KID-github/workflow
关于项目的所有文件都放在其中,后续还将介绍如何利用树莓派进行电话通知!!!即每次检测到研招网更新就会电话通知
相关参考
GitHub actions文档:https://docs.github.com/cn/actions
WxPusher微信推送服务:https://wxpusher.dingliqc.com/docs/#/
python urllib.request模块的使用详解:https://www.jb51.net/article/207790.htm
时间触发器参考文档:https://crontab.guru/every-5-minutes
当RPA流程自动控制机器人遇到了GitHub Actions和Wxpusher,实现自动推送一体化服务相关推荐
- Python连接钉钉群机器人每天自动推送国外天气
Python连接钉钉群机器人每天自动推送国外天气 一.天气获取 我使用的是openweather api,这个api的官方文档写的十分详细,链接:openweather 打开链接,界面如下: 目前只有 ...
- 飞书群聊机器人每日自动推送语录及风景照片python版
飞书群聊机器人自动推送消息 使用场景 推送机制 代码目录 代码详解 获取图片 获取有效token 上传图片并得到Image_Key 使用 完整代码 使用场景 最近使用飞书聊天,觉得蛮好用的,刚好这段时 ...
- GitHub Actions 持续集成 - 1. 自动生成 Release 内容
GitHub Actions 持续集成 - 1. 自动生成 Release 内容 本文地址:blog.lucien.ink/archives/490 0. 摘要 之前挖了一个坑,慢慢补上. 本文章旨在 ...
- python实现企业微信机器人的自动推送
关于企业微信机器人的自动推送 前些天,做了一个关于企业微信机器人自动推送消息的一个小功能,在这里来聊一下其中学习到的一些内容. 由于是需要进行自动推送新闻,因此先对需要获得信息的网页进行爬取. 在爬取 ...
- 使用GitHub的action将每日天气推送到微信和QQ
目录 什么是GitHub action action基本使用 GitHub action 中的一些基本概念 GitHub action执行定时任务脚本 拓展:关于action的定时设置 什么是GitH ...
- 【Visual Studio 2019】上传代码到 GitHub ( 16.9.2 版本 | 安装 GitHub 扩展插件 | 创建 Git 仓库 | 推送到远程仓库 )
文章目录 一.安装 GitHub 扩展插件 二.创建 Git 仓库 三.推送到远程仓库 今天将 Visual Studio 2019 从 16.3.6 版本升级到了 16.9.2 版本 , 发现相关操 ...
- 钉钉机器人自动推送股票信息
项目时间和要求 马上五一了,估计很多小伙伴会休假!我们时间稍晚长一点 ,4/29-5/11.给大家两周的时间完成. 这虽然是一个小系统,但是玩好了,可以做各种好玩的东西. 为了照顾新手同学,我把这个项 ...
- 配置 Hi提醒 让直播提醒机器人消息在主播开播自动推送消息到钉钉群
今天我们来配置Hi提醒 实现指定主播开播时推送直播提醒消息到钉钉群 主要实现是创建好钉钉群机器人,然后推送信息时选择钉钉就行了. 该通道配置完成后可推送信息至你的钉钉群中,一次配置持久使用. 直接看操 ...
- python企业微信群聊_企业微信、钉钉群消息python机器人自动推送
钉钉具体的接口配置文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 企业微信的接口配置文档,目前在应用内部添加机器人时能够查看,还没有提供 ...
最新文章
- Visual Studio原生开发的20条调试技巧(下)
- php 生成ai文件,php_Generator php 生成器
- linux多线程简介
- Java-Calendar
- Codeforces Round #446 (Div. 1) B. Gluttony 构造 + 补集思想
- SyntaxError: Non-UTF-8 code starting with '\xba' in file 错误的解决方法!!
- 人工智能和机器学习的前世今生
- mysql安装下载的缓存文件_mysql的安装
- 1014.QxORM移植
- mysql8 win10_window10下安装多个MySQL8.0
- php字符不可选状态,php – mailto不可读的字符 – unicode
- 机器学习模型在线校验交互示例
- nec的reset文件摘要
- 纯html网页重定向与跳转
- Python3 字节码详解
- 【跨域问题】springBoot + VUE解决跨域问题几种处理方案
- 1000瓶毒药里有1瓶有毒,问需要多少只老鼠能试出来哪瓶有毒
- 小牛叔讲Python第1章: 编程界的瑞士军刀Python
- 阿里云服务器租用测试
- 计算机一级mcoffice考试题型,计算机一级MSOffice考试试题