当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,实现自动推送一体化服务相关推荐

  1. Python连接钉钉群机器人每天自动推送国外天气

    Python连接钉钉群机器人每天自动推送国外天气 一.天气获取 我使用的是openweather api,这个api的官方文档写的十分详细,链接:openweather 打开链接,界面如下: 目前只有 ...

  2. 飞书群聊机器人每日自动推送语录及风景照片python版

    飞书群聊机器人自动推送消息 使用场景 推送机制 代码目录 代码详解 获取图片 获取有效token 上传图片并得到Image_Key 使用 完整代码 使用场景 最近使用飞书聊天,觉得蛮好用的,刚好这段时 ...

  3. GitHub Actions 持续集成 - 1. 自动生成 Release 内容

    GitHub Actions 持续集成 - 1. 自动生成 Release 内容 本文地址:blog.lucien.ink/archives/490 0. 摘要 之前挖了一个坑,慢慢补上. 本文章旨在 ...

  4. python实现企业微信机器人的自动推送

    关于企业微信机器人的自动推送 前些天,做了一个关于企业微信机器人自动推送消息的一个小功能,在这里来聊一下其中学习到的一些内容. 由于是需要进行自动推送新闻,因此先对需要获得信息的网页进行爬取. 在爬取 ...

  5. 使用GitHub的action将每日天气推送到微信和QQ

    目录 什么是GitHub action action基本使用 GitHub action 中的一些基本概念 GitHub action执行定时任务脚本 拓展:关于action的定时设置 什么是GitH ...

  6. 【Visual Studio 2019】上传代码到 GitHub ( 16.9.2 版本 | 安装 GitHub 扩展插件 | 创建 Git 仓库 | 推送到远程仓库 )

    文章目录 一.安装 GitHub 扩展插件 二.创建 Git 仓库 三.推送到远程仓库 今天将 Visual Studio 2019 从 16.3.6 版本升级到了 16.9.2 版本 , 发现相关操 ...

  7. 钉钉机器人自动推送股票信息

    项目时间和要求 马上五一了,估计很多小伙伴会休假!我们时间稍晚长一点 ,4/29-5/11.给大家两周的时间完成. 这虽然是一个小系统,但是玩好了,可以做各种好玩的东西. 为了照顾新手同学,我把这个项 ...

  8. 配置 Hi提醒 让直播提醒机器人消息在主播开播自动推送消息到钉钉群

    今天我们来配置Hi提醒 实现指定主播开播时推送直播提醒消息到钉钉群 主要实现是创建好钉钉群机器人,然后推送信息时选择钉钉就行了. 该通道配置完成后可推送信息至你的钉钉群中,一次配置持久使用. 直接看操 ...

  9. python企业微信群聊_企业微信、钉钉群消息python机器人自动推送

    钉钉具体的接口配置文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 企业微信的接口配置文档,目前在应用内部添加机器人时能够查看,还没有提供 ...

最新文章

  1. Visual Studio原生开发的20条调试技巧(下)
  2. php 生成ai文件,php_Generator php 生成器
  3. linux多线程简介
  4. Java-Calendar
  5. Codeforces Round #446 (Div. 1) B. Gluttony 构造 + 补集思想
  6. SyntaxError: Non-UTF-8 code starting with '\xba' in file 错误的解决方法!!
  7. 人工智能和机器学习的前世今生
  8. mysql安装下载的缓存文件_mysql的安装
  9. 1014.QxORM移植
  10. mysql8 win10_window10下安装多个MySQL8.0
  11. php字符不可选状态,php – mailto不可读的字符 – unicode
  12. 机器学习模型在线校验交互示例
  13. nec的reset文件摘要
  14. 纯html网页重定向与跳转
  15. Python3 字节码详解
  16. 【跨域问题】springBoot + VUE解决跨域问题几种处理方案
  17. 1000瓶毒药里有1瓶有毒,问需要多少只老鼠能试出来哪瓶有毒
  18. 小牛叔讲Python第1章: 编程界的瑞士军刀Python
  19. 阿里云服务器租用测试
  20. 计算机一级mcoffice考试题型,计算机一级MSOffice考试试题

热门文章

  1. 关于ubuntu的详细介绍
  2. 鼠标移动效果html5,js实现鼠标左右移动,图片也跟着移动效果
  3. 1.1 win10下wget的安装
  4. linux systemd.service说明
  5. Docker容器安装Mysql8
  6. 【山无遮,海无拦】LeetCode题集 线性枚举之最值算法
  7. c语言中的右移是逻辑右移还是算术右移的问题
  8. 该来的年终总结,还是来了
  9. java 获取docker ip_docker容器内部获取宿主机ip地址方法以及报错解决
  10. Cookie、Session和Token(学习笔记)