使用Tampermonkey 前端程序员竟用它入侵了github系统。。。(内附源码)

傻瓜式提取网页数据的油猴脚本(JavaScript 代码) 一次性提取任意网站的布局类似的数据,例如 淘宝的商品价格、微博的热搜标题、必应搜索的图片链接。使用JavaScript实现,配置到Tampermonkey(油猴)中即可使用。 阅读详情

      女朋友是做外账会计的,手上有很多报税的客户,每到月中都要检查各家的报税情况,进入国税系统,截图,命名,保存,归档.发给客户。有时候她忙不过来会让我帮忙,这样繁琐,程序化的事情,作为一名前端程序员的我准备写个脚本帮助女朋友提升一下工作效率。节省二人的时间。

装逼开始

下面开始分析一下这个脚本的诞生过程:

写脚本,首先要了解业务流程,了解工作流程。找出其中可以利用技术自动化的操作部分,从而提高效率,避免重复,无意义的工作。浪费时间就是浪费生命。

工作流程:

打开一个包含很多客户的Excel,打开国税网站,复制excel的帐号和密码,点击验证,点击同意,点击登录进入系统,在登录后的首页截图,命名为公司名,保存到文件夹里.退出,重复以上操作.

下面这张是深圳国税登录入口

需求分析:

首先:我们可以通过技术手段,将复制账号密码这一步简化.通过Excel手段我们可以将账号和密码合成一列,这一列的数据格式就是

https://github.com/login?name=1&pwd=2 网站地址+参数账户名+参数密码,接着,针对这个页面我们写个脚本,提取出url中的账户名和密码,自动填写到表单里,然后将同意的单选框选中.

然后:在某个固定的页面,通过技术手段注入一个按钮,点击这个按钮,对页面某区域进行截图,并自动命名归档,保存命名规则为页面上的某个显示的字段,其实就是公司名.

这部分的分析很重要,直接决定你脚本有几个函数,使用那些技术,数据流如何流转的。

 

设计思路:

1:制作一个chrome的插件,调取浏览器提供的api,自动截图,命名保存到本地

2:编写Tampermonkey 脚本,在页面注入一个按钮,并为按钮添加点击事件

前一种方式技术难度高,操作复杂,故后续尝试,首选的是第二种编写一个js脚本

脚本的编写主要依据需求分析,主要二个功能,一是根据url自动填写账号密码 二是点击注入的按钮命名保存截图

以下是脚本源码,经过一番修改,将国税系统改为github

引入了二个库 jquery 和 html2canvas 

jquery操作dom 

heml2canvas 将dom节点生成canvas,

源码编写:

// ==UserScript==
// @name         魔法按钮
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Fizz
// @match        https://github.com/*
// @require      https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js
// @require      https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.min.js
// @grant        none
// ==/UserScript==

(function () {

  'use strict'

  // 获取url中参数
  function getQueryString (name) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
    var r = window.location.search.substr(1).match(reg)
    if (r != null) return unescape(r[2])
    return null
  }

  // 提取url账号密码,自动填写表单,选中单选按钮
  if (location.href.indexOf('https://github.com/login') > -1 && location.search) {
    let name = getQueryString('name')
    let pwd = getQueryString('pwd')
    $('#login_field').val(name)
    $('#password').val(pwd)
    // $('[type=radio]').eq(0).attr('checked',true)
  }

  // 点击魔法按钮
  function clickMagicBtn () {
    html2canvas($('body'), {
      onrendered: function (canvas) {
        var dataURL = canvas.toDataURL('image/png')

        const fixtype = (type) => {
          type = type.toLocaleLowerCase().replace(/jpg/i, 'jpeg')
          const r = type.match(/png|jpeg|bmp|gif/)[0]
          return 'image/' + r
        }

        dataURL = dataURL.replace(fixtype('png'), 'image/octet-stream')

        // 将图片保存本地
        const saveFile = (data, filename) => {
          const link = document.createElement('a')
          link.href = data
          link.download = filename
          const event = document.createEvent('MouseEvents')
          event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
          link.dispatchEvent(event)
        }
        const filename = $('title').text() + '.png' // 文件名提取方法
        saveFile(dataURL, filename)
      },
      width: 320,
      height: 400
    })
  }

  // 注入魔法按钮
  var btnStyle = `position: fixed;
    bottom: 20px;
    right: 20px;
    color: #fff;
    background-color: #0084ff;
    border: 1px solid #0084ff;
    border-radius: 4px;
    padding: 5px 10px;` // 按钮样式
  var button = $(`<button style="${btnStyle}">魔法按钮</button>`)
  button.on('click', clickMagicBtn)
  $('body').append(button)
})()

效果图:

 

 

学到的东西:

  1. 熟悉了TamperMonkery插件的使用,
  2. 复习了jquery和html2cavan库的api使用
  3. 对编程和生活有了更深的思考,你的技术不应该是仅仅为了满足老板的那个产品。你应该学以致用,造福广大人民,解救那些还整天坐着重复无意义工作的人们,让人们有更多的时间陪家人,陪孩子。
  4.  降低女朋友工作时间,提供工作效率,有助于家庭和谐幸福。(猝不及防的撒把狗粮。。。)

 

结束语:

编程让生活更美好,节省你的时间. 短短的几十行代码,就能把工作效率提高三本。这就是编程的魅力。这就是神奇的魔法。

试问一下你的工作技能除了给你带来薪资以外,对你的生活还有什么用处?

有兴趣的同学可以联系我,一起探讨一下脚本的世界。  try to take over the world !

有需要脚本定制的可以商业合作。谢谢

TamperMonkey编写脚本常用api中文版(附文档原地址和各种api案例) TamperMonkey脚本api文档用户脚本头部@name@namespace@version@author@description@homepage, @homepageURL, @website and @source@icon, @iconURL and @defaulticon@icon64 and @icon64URL@updateURL@downloadURL@supportURL@include@match@exclude@require@resource@connect@run-at@gr 阅读详情

相关推荐

DELPHI11 利用Android手机实现条码扫描功能

好了,整个过程全部结束,当然这只是最简单的例子,只是演示一下如何识别条码,更多的条码处理功能,比如优化,提速等需要在后面继续。安装过程中所有提示框全部按OK就可以,直到提示安装成功,那么ZXing库就成功完成了安装。点击红框标识的文件夹图标,将下载的ZXing库文件路径加入进来后,点ADD。第三步:选择下载的ZXing库路径,并按Ctrl + A进行全选,并导入。至此为止,我们的库才算是全部安装完成,可以在DELPHI 中正常引用了。2.打开相机,识别条码,并将条码内容显示在MEMO1中。

1531

【效率提升】提升Github访问速度的办法

如果没有被墙:https://chrome.google.com/webstore/detail/github%E5%8A%A0%E9%80%9F/ffjjnphohkfckeplcjflmgneebafggej。如果没有被墙:https://chrome.google.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo。TamperMonkey油猴脚本插件是一个脚本管理器,其自身并不提供脚本,所以我们需要额外的安装脚本。2.1.1. 下载油猴插件。

wybsw520的专栏 1万+

手机OIS马达拆解:从苹果的悬丝到三星的滚珠,不同方案如何影响你的拍照体验?

本文深度解析手机OIS马达技术,对比苹果悬丝式、三星滚珠式和LG记忆合金式三种主流方案的机械原理与成像体验差异。通过详实的数据和测试结果,揭示不同OIS技术如何影响防抖性能、模组厚度及长期可靠性,为摄影爱好者和技术爱好者提供实用选购建议。

weixin_42554408的博客 309

【亲测免费】 Tampermonkey 开源项目教程

Tampermonkey 项目的目录结构如下: ``` tampermonkey/ ├── docs/ ├── examples/ ├── src/ │ ├── background/ │ ├── content/ │ ├── options/ │ ├── popup/ │ ├── shared/ │ └── tampermonkey.js ├── tests/ ├── ...

gitblog_00952的博客 1210

高分三号SAR影像超精细条带数据预处理实战:从原始数据到地理编码的完整操作指南

本文提供了高分三号SAR影像超精细条带数据预处理的完整实战指南。详细介绍了从原始数据导入、多视处理、滤波去噪、DEM准备到地理编码与辐射定标的完整流程,帮助用户利用SARscape软件将原始SAR数据转化为可用于分析的地理编码产品。

tree8的博客 578

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7282

【油猴脚本】编写一个简单的油猴(Tampermonkey)脚本,在网页中加入一个表格

哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎。

宝码香车的博客 987

基于STM32L4XX、HAL库的BQ25713RSNR充电芯片驱动程序设计

define BQ25713_I2C_ADDR (0x6B << 1) // 7位地址为 0x6B,HAL库需要左移一位。// 示例:配置 CHARGE_OPTION_0 寄存器:使能充电,使能 ICO(输入电流优化)reg_data |= (EN_CHG_MASK | EN_ICO_MASK);

zhusl6688的博客 406

基于Tampermonkey平台的百度去广告

基于Tampermonkey的百度去广告源码分享!

Alan_Sheng的博客 1007

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4097

【100%通过率】华为od机试C卷【部门人力分配】Python 实现

当前部门需要完成 N 个需求,需求用 requirements[i] 表示,requirements[i] 表示第 i 个需求的工作量大小,单位:人月。2:明显这个人力需求值有上下限的情况下【下限为requirements中的最大值,上限为requirements中的最大两个值相加(因为最多有两个需求同一个月开发)】,可以考虑使用二分法。当选择人力为6时,2个需求量为3的工作可以在1个月里完成,其他2个工作各需要1个月完成。当选择人力为5时,4个工作各需要1个月完成,一共需要4个月才能完成所有需求。

MISAYAONE的博客 2020

【油猴脚本】00019 案例 Tampermonkey油猴脚本, 仅用于学习,不要乱搞。添加数据导出Excel功能。Jquery爬虫,JavaScript爬虫HTML+Css+JavaScript编写

附具体完整代码,深入理解,彻底掌握!可以一键复制,查看效果。

宝码香车的博客 2413

SAP 中配置权限职责菜单并分配给用户的核心流程是:用PFCG 创建 / 维护角色(含菜单、事务码、权限)→ 生成权限参数文件 → 通过 SU01/SU10 将角色分配给用户

SAP权限配置核心流程:1)通过PFCG创建角色,配置菜单事务码及权限对象;2)生成权限参数文件;3)用SU01/SU10分配角色给用户。关键步骤包括:在PFCG中维护菜单结构、设置权限字段值、生成Profile,通过用户比较验证权限。批量分配可用SU10,特殊需求可创建复合角色或自定义权限对象。常见问题需检查权限缺失(SU53)、菜单分配及组织级别设置。流程简化为:创建角色→配置权限→分配用户→验证生效。

金牌架构师 1276

写一个简单的Tampermonkey油猴插件—实现音乐下载

再这是歌曲的名字位于类song_info_name的a标签中可以获得。可以看到音乐的url可以直接从audio标签的src属性获得。下载可以直接使用油猴自带的api,开头添加一下内容即可。目标是将播放的音乐下载到本地(当然仅限于免费歌曲)油猴插件的安装与简介请参考,本文不再赘述。调用的话可以通过加入一个按钮来实现,效果如下。再调试发现可以正常显示并且下载 ,大功告成。通过断点发现,此时dom还未加载出来,发现脚本运行了,但是没用出现按钮,一个基本的油猴插件有一下组成。打开F12查看音乐标签的位置。

unicornff的博客 4314

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【教程】油猴脚本开发入门教程

右击顶部工具栏中的油猴插件图标,在弹出的操作框中选择添加新脚本。 之后你将进入一个编辑页面,我们来看看在这个编辑页面中一些基本的知识点。 这里重要的点有两个,一个是设置匹配的网站,默认的初始生成的代码中,没有对 https 的网址进行匹配,仅对 http 网址进行了匹配,所以要自己添加。第二个就是通过 标签来添加你本地的文件地址,这样当你在本地进行开发的代码,就可以直接在对应的网站上执行了。当用户使用 请求远程数据的时候,需要使用 connect 指定允许访问的域名,支持域名、子域名、IP地址以及

码的世界 4万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Tampermonkey扩展下载

Tampermonkey的下载竟然如此简单!(一个超级有用的浏览器扩展)

qq_28241705的博客 4113

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Tampermonkey安装,仅需一步!

相信大家能找到这篇文章,说明商店直接下载行不通并且通过其他渠道获取到Tampermonkey安装文件,看到crx文件已经百思不得其解了,这是什么东东?不是我们平时用的文件扩展名呀?不多废话,马上就教大家如何一步快速安装Tempermonkey。这就安装完毕了,接下来就是白p党的白p福音了,这里再给大家一个实用的脚本源放文章最后,希望大家更轻松愉快的在互联网的世界畅游 (比心)

A_Small_Man的博客 1万+

黑客专属记事本(编程记事本)

这个记事本比系统自带记事本视觉上更好看一些,大家可以下载试用一下,自我感觉还是可以的   黑客记事本本:360云盘下载    访问密码 259d 另外推荐几款好用的编程记事本,都已用过,都十分小巧实用,其中任一款都挺好用的,可以根据个人习惯,然后去从中选择一款使用 编程记事本:360云盘下载   访问密码 e20b     如果连接失效了,可以直接评论回复通知我哦,或者加

云淡风轻的博客 8529

Tampermonkey油猴用户脚本API文档

相信大家都了解浏览器插件,而在众多的扩展中,就不得不提到一个浏览器插件——Tampermonkey。中文俗称油猴。相信很多人也听说过,大家可以把他理解为一个用户脚本管理器。它本身是无法为我们发挥什么作用的,它主要依靠各大社区编写的扩展脚本(JavaScript代码)运行在浏览器上,来改变被访问网页的功能,提升我们的网页浏览体验。「油猴」,Greasemonkey,简称 GM,可以简单理解为脚本管理器。

鱼干的博客 5336

window.onload问题解决啦!

 原文地址:http://dean.edwards.name/weblog/2005/09/busted/我所谓的解决只是针对两款主要的浏览器——IE和Mozilla/Firefox。难道这还不够吗?首先,让我先定义这个问题。程序员在他们的web应用程序的最开始调用window.onload 事件。对于菜单的动态效果或者更复杂的事情,如邮件系统的初始化,使用这个事件是很平常的。但是问题就在

3111

超简单安装油猴(tampermonkey)脚本及使用教程

超简单的油猴安装教程第一步第二步第三步 第一步 下载Tampermonkey.crx (1.24MB) 提取码:nb1l 第二步 点击谷歌浏览器右上角,找到更多工具,然后点击拓展程序。 打开开发者模式 第三步 简单拖拽,把下载好的文件拖拽进第二步最后的界面即可。 脚本下载 地址 https://greasyfork.org/zh-CN/scripts 后面安装脚本就行了,没有什么难度的。 ...

大河的博客 56万+

360极速浏览器添加、删除、停用或者开启纂改猴扩展

前言纂改猴是一款广受欢迎的浏览器扩展,支持用户通过编写JavaScript脚本来修改网页内容、增强功能或自动化操作。无论是简单的页面样式调整,还是复杂的交互逻辑改写,纂改猴都能轻松应对。本书旨在如何在360极速浏览器添加、删除、停用或者开启篡改猴扩展。。1.下载 Tampermonkey安装文件去纂改猴官网下载 Tampermonkey安装文件,点击官网地址链接进去选择Chrome下载2.进入设置界面打开 360极速浏览器,从浏览器右上角的,三行图标设置3.进入设置界面。

chase2025的博客 7270

【使用jquery编写第一个油猴(tempermonkey)脚本】

简单说明如何进行Tampermonkey(油猴)脚本编写,调试,发布。

crazy_rays的专栏 7261

油猴Tampermonkey脚本hook案例

注释内容解释@match这个注释的内容最为重要,它决定了你的脚本应用到哪个具体的网页,还是应用到所有的网页@run-at确定了脚本的注入时机,在js逆向中也很重要油猴脚本所有注释介绍属性名作用@name脚本的名字@namespace区分相同名称的脚本,一般写成作者名字或者网址就可以了@version版本号描述@author作者名字@match匹配的网址才会执行对应的脚本@grant。

一起学习哈 2588

Microsoft Edge 安装 tempermonkey 教程

打开Microsoft Edge浏览器 然后点击三个小点点那里选择拓展 接着 再接着 搜索tempermonkey 获取即可 百度搜索Greasy Fork,点进去 找到对应浏览器的点击进去,选择安装即可 再回到greasy fork 搜索vip 点击进去安装即可 ...

快乐男孩的博客 3889
上一篇: 实战fabric.js教程及API
下一篇: 环信WebIM 发送图片消息和显示图片 发送文件和显示文件 发送表情和显示表情
拿我格子衫来
拿我格子衫来 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 6万+粉丝 858原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值