Coder Social home page Coder Social logo

web_robot's Introduction

web_robot

自动化网页操作机器人

图片

详细说明

请见博客
使用教程V1.0版本
持续更新教程

已有功能

  1. 管理多个事务,每个事务有多个事件,每个事件对应一种操作
  2. 新增事件中方便的页面元素筛选器,querySelect自由筛选器
  3. 可以测试运行一个事件,运行一整个事务。
  4. 支持事务的导入导出
  5. 支持源码事务,写js源码并注入运行
  6. 支持流程事务的受控运行,本地鼠标和键盘还原事件。
  7. 支持受控事务,实现键鼠录制和还原
  8. 支持元素筛选和执行时的自动定位
  9. 支持设值事件作为运行前自定义参数${value}
  10. 支持页面直接添加事件
  11. 支持定时运行
  12. 支持源码事务的开启直接注入
  13. 支持流程取值事件,取到的值对当次流程有效
  14. 支持流程事件的直接录制
  15. 页面添加事件中优秀的可视化圈选

核心部分--事务和运行机制说明

新建事务分为三种事务,流程事务,源码事务,受控事务;
(事务功能场景互相有重叠又互相有补充,详情见下面使用场景)
运行分为运行,定时运行,受控运行,轮播,开启注入;

  • 流程事务:通过dom定义事件。

    • 运行 (运行一次,运行在浏览器后台,使用浏览器事件)
    • 受控运行 (运行一次,运行在本地客户端,控制鼠标键盘还原对应事件)
    • 定时运行 (定时运行,运行在浏览器后台,有两种定时模式每日和每隔,使用浏览器事件)
    • 轮播 (循环运行事件,运行在插件页,插件页关闭即停止,使用浏览器事件)
  • 源码事务:通过源码定义事件,有正则地址匹配机制。

    • 运行 (运行一次,直接向目前页注入代码)
    • 定时运行 (定时运行,运行在浏览器后台,向当前页注入固定代码)
    • 开启注入 (打开页面时注入,直接匹配地址,进行注入)
  • 受控事务:通过鼠标键盘录制定义事件,可以受控运行,

    • 受控运行 (运行一次,运行于本地客户端,还原录制的鼠标键盘事件)

流程事务事件的定义包括 dom节点,事件,延时,设值:

  • 节点筛选器包含

    • 自定义节点筛选器
    • html标签筛选器
  • 事件包含

    • click 点击
    • value 设值
    • refresh 刷新
    • pagejump 当页跳转
    • mouseover 鼠标移入
    • getvalue 取值
    • newpage 新页跳转

注:受控相关的都必须使用开启本地客户端。

使用方法

请认准这个为chrome插件,运行于chrome浏览器,或基于chromium的浏览器

  1. 浏览器设置(三个点)--> 更多工具 --> 扩展程序 ↓
  2. 打开右上角开发者模式 --> 加载已解压的扩展程序 --> 选择clone下来的该项目根目录 ↓
  3. 弄完可关掉开发者模式 --> 右键项目图标 --> 检查可读取和更改网站数据 --> 在所有网站上

版本更新

git pull

在继续上面的1,2步骤

受控运行,需开启本地客户端web服务

  1. 重要:目前本地客户端只在mac系统上进行过测试
  2. 首先准备一个python3虚拟环境,venv/ 放于项目根目录下,如有自己的python3,请修改py/web.py中的PYTHON_ENV
  • PYTHON_ENV = "./venv/bin/python"
  1. pip下载 py/requirements.txt 里的包
  • pip install -r py/requirements.txt
  1. 项目根目录下启动web服务 python py/web.py
  2. 如果没反应,以mac举例,左上角的设置 -> 系统偏好设置 -> 安全性与隐私 -> 辅助功能 将开启web服务的应用(如iTerm)加入到里面

使用场景

  • 流程事务可以定义复杂重复的页面操作进行自动化,直接运行适用比如重复填写负责的表单,设值也可以运行时自定义参数。
  • 流程事务的定时运行可以适用每日签到,每日在网页处理某件同样的事。
  • 流程事务受控运行适用于前端做了特殊处理无法触发事件的情况,使用键盘鼠标模拟事件,必然可以触发。
  • 源码事务的的定时运行适用于如定时提醒喝水(alert)等
  • 源码事务的开始注入适用于如百度去广告的场景等
  • 受控事务的录制和受控运行适用于对一个复杂操作(无法用流程实现)的定义和复现。

版本迭代

v0.1 (2019.08.14)

  1. 完成初始第一版,管理流程事务

v1.0 (2020.05.13)(重构更新)

  1. 管理多个事务,每个事务有多个过程,每个过程对应一种操作
  2. 新增操作中方便的页面元素筛选器,css/id筛选器
  3. 测试运行一个过程,运行一个事务,运行转为background后台
  4. 支持事务的导入导出

v1.1 (2020.05.28) (数据与上版本不兼容)

  1. 支持源码事务

v1.2 (2020.06.01)

  1. 新增事务受控运行模式,运行于background中
  2. 新增本地web服务,用于鼠标键盘模拟流程的受控执行

v1.2.1 (2020.06.03)

  1. 删除事务新增校验
  2. 实现流程中事件的复制,移动,编辑

v1.3 (2020.06.05)

  1. 新增受控事务
  2. 本地客户端实现受控事务的键鼠事件录制,存储和还原

v1.3.1 (2020.06.06)

  1. 优化元素筛选器进行自动定位
  2. 优化流程事件运行和受控运行的自动定位

v1.4.0 (2020.06.07)

  1. 改class/id筛选器为自由筛选器
  2. 使用promise重构流程执行
  3. 新增执行前自定义参数
  4. 新增本地服务检查

v1.5.0 (2020.06.08)

  1. 新增网页直接添加流程事件的方式

v1.6.0 (2020.06.09)

  1. 新增定时运行, 仅支持流程事务

v1.6.1 (2020.06.10)

  1. 修改源码事务,可进行路由匹配检查
  2. 新增源码事务的定时运行

v1.6.2 (2020.06.13)

  1. 优化运行元素的定位
  2. 新增源码事务直接注入的开启与关闭

v1.6.3 (2020.06.22)

  1. 新增鼠标移入事件操作

v1.7.0 (2020.06.29)

  1. 修复部分bug
  2. 流程事务新增取值事件,支持运行,受控运行与轮播

v1.7.1 (2020.07.05)

  1. 新增流程事件页面直接录制
  2. 关闭页面添加事件入口

V1.8.0 (2020.07.20)

  1. 新增页面添加事件的可视化圈选
  2. 重构页面事件定义的iframe嵌入页

V1.8.1 (2020.08.09)

  1. 流程事务支持新页面跳转操作
  2. 主页默认根据创建时间展示列表,支持移位

V1.8.2 (2020.08.15)

  1. 新用户初始化数据修复
  2. 新增重命名操作

感谢轮子

  1. materializecss
  2. 官方轮子
  3. 插件教程

感谢Contributors,欢迎加入

License

web_robot is MIT licensed.

赞赏

赞赏

web_robot's People

Contributors

webgjc avatar iloveping avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.