我用Devchat开发了公务员报名确认系统自动登录脚本,再也不用担心挤不进去了

#AI编程助手哪家好?DevChat“真”好用 #

演示效果

我用Devchat开发了公务员报名确认系统自动登录,再也不用担心挤不进去了


目录

  • 演示效果
  • 前言
  • 粉丝独家专属红包码
  • DevChat是什么?
  • DevChat AI编程助手有哪些优势
  • 一、安装Vscode
    • 1、下载vscode链接
    • 2、安装vscode
  • 二、注册DevChat
    • 1、打开注册页
    • 2、验证成功完成邮箱绑定
    • 3、绑定微信可获得8元
  • 三、安装插件
  • 四、配置Access Key
    • 1、获取Access Key
    • 2、设置Access Key
      • 点击左下角管理(“齿轮”图标)—命令面板(Command Palette),如下图:
      • 在弹出的命令面板中输入“devchat key”,点击如下命令:
    • 3、验证是否安装成功
        • 1、发现报错
        • 2、下载Git
        • 3、安装Git
        • 4、重启Vscode提问测试
  • 五、开发
    • 选择语言类型
    • 安装油猴tampermonkey
    • 编写脚本
      • 获取页面定位元素
        • 通过Devchat获取Javascript锚点
      • 获取验证码数据
        • 图片转base64
      • 网络🛜请求封装📦
  • 完整代码
  • 最后

前言

博主今年第一次参加国考,也是第一次感受到了,想交个钱还要排队,于是我开发出了这个一键自动登录脚本,可以免去账号密码还有验证码的识别,减少了重复输入验证码的时间,本次采用Devchat协助开发,事半功倍,以下是成品演示效果

粉丝独家专属红包码

专属下载链接:http://meri.co/zj3
红包码:fFtna36bMZfGUDFrBYpE6S

DevChat是什么?

DevChat是一个集成了多种主流大模型的AI编程工具,专注于提升程序员的编程效率。它整合了ChatGPT、Codex等热门AI大模型,支持自然语言编程、代码编写、代码生成、代码补全等功能。

它最大的优势是一站式服务,集成热门大模型,并且可以根据需求随心切换,省去了选择和整合不同AI模型的麻烦,无需过多配置就可以快速上手,从而全面提升开发效率。

它是由国内领先的研发效能分析平台思码逸精心打造,它为开发者提供了一种全新的编程体验。使用 Devchat 插件,无缝融入 IDE,一网打尽GPT-4、Claude、讯飞等知名大模型 ,帮助开发者提高开发效率,告别脏活累活!

DevChat AI编程助手有哪些优势

核心优势:能兼容多种主流大模型,多种模板快速响应.不再纠结AI编程助手哪家好

集合(GPT-4 8k/32k、GPT-3.5 4k/16k、Claude2、文心一言、星火、ChatGLM、Code Llama)等大模型

 1. 精准的上下文控制

 2. 多种大模型任意选:复杂任务非 GPT-4 莫属,简单任务交给低成本模型,组合使用效能最佳

 3.  精准的“上下文”管理;把任意代码段加入对话,不靠 AI 时好时坏的猜测,把控制权交还给用户

 4.  简单可扩展的提示词目录:开放提示词扩展,Prompts as Code,满足团队和个人自定义需求

 5. 灵活的 Prompt 模板管理,ask-code功能解答代码库的各类问题

 6. 产品设计务实,迭代反馈快

 7. 代码和文档自由生成,而非简单补全

 8.  对接微软 Azure 服务,可信赖的企业级数据安全

一、安装Vscode

如果你的电脑上没有vscode的话,你可以和我一样先安装,否则用不了插件

1、下载vscode链接

https://az764295.vo.msecnd.net/stable/6c3e3dba23e8fadc360aed75ce363ba185c49794/VSCodeUserSetup-x64-1.81.1.exe

2、安装vscode

在这里插入图片描述

二、注册DevChat

1、打开注册页

点我直达:meri.co/zj3
输入账号和邮箱验证成功即可
在这里插入图片描述

2、验证成功完成邮箱绑定

邮箱验证成功后如下图所示
在这里插入图片描述
在这里插入图片描述

3、绑定微信可获得8元

提示:右上角可以切换中文
在这里插入图片描述
完成绑定后账户有余额1.367USD,反正是免费的

余额剩余tokens
1.367USD~32k GPT-4 tokens or ~638k GPT-3.5 tokens

若额度不够可以用我的福利兑换码哦~

三、安装插件

在 VSCode 插件市场中搜索“devchat”,如下图。
在这里插入图片描述

四、配置Access Key

1、获取Access Key

在最初注册的时候就已经发送给我们Access Key了
在这里插入图片描述

2、设置Access Key

点击左下角管理(“齿轮”图标)—命令面板(Command Palette),如下图:

在这里插入图片描述

在弹出的命令面板中输入“devchat key”,点击如下命令:

在这里插入图片描述
然后,在弹出的输入框中粘贴进 DevChat access key,回车。

3、验证是否安装成功

1、发现报错

博主在做测试的时候发现以下报错信息,如果你也出现报错信息,请按我的方法来

在这里插入图片描述

2、下载Git

如果你是Windows64位电脑,请点击下面的国内镜像下载链接,选择合适的版本
下载Git-2.42.0.2-64-bit.exe
在这里插入图片描述

3、安装Git

默认下一步直到安装完成即可,安装完成后一定要退出Vscode,否则不生效
在这里插入图片描述

4、重启Vscode提问测试

可以看到刚刚的报错信息已经解决了
在这里插入图片描述

五、开发

选择语言类型

要完成自动登录,要具备表单信息自动填写,验证码自动识别、还有点击事件,通过python Selenium并不能完美解决这一问题,通过接口也不能完成可视化窗口登录,因为我们是需要进去操作数据的,所以这里用了JavaScript作为本次首选语言,搭载油猴脚本管理器

安装油猴tampermonkey

这里安装过程比较简单,就不做说明了,不懂的同学可以去找相关的文章看看
在这里插入图片描述

编写脚本

1、新建一个空的脚本代码

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://*/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
})();

2、给脚本运行设置个识别链接

// @match        *://*.gwy.cpta.com.cn/*

这样的话就能识别到脚本了
在这里插入图片描述

获取页面定位元素

1、打开目标网页进行分析

在这里插入图片描述
通过表单的分析我们定位到了账号、身份证、验证码等信息

账号元素:

<input name="yusername" type="text" id="yusername" placeholder="请输入报名序号" autocomplete="off" maxlength="12">

身份证元素:

<input name="ypassword" type="text" id="ypassword" placeholder="请输入证件号码" autocomplete="off">

验证码元素:

<img src="/gagwy/manage/yzm.jsp?myrand=1699612285512" alt="" width="100" height="35" style="cursor:pointer;" title="单击图片刷新" onclick="this.src='/gagwy/manage/yzm.jsp?myrand='+Math.random();">
通过Devchat获取Javascript锚点

编写问题:

Javascript中,<input name="yusername" type="text" id="yusername" placeholder="请输入报名序号" autocomplete="off" maxlength="12"> 给数值

返回代码:

var inputElement = document.getElementById("yusername");
inputElement.value = 12345;

在这里插入图片描述
这时我们获取到了,给报名序号也就是账号的代码,接下来刷新下脚本看看能不能自动填写

在这里插入图片描述
可以看到上图中,网页刷新完成时,自动填写了"12345",

通过类似的提问方式我们可以获得三个参数的设置代码

   // 获取到<input>元素
  var inputElement = document.getElementById("yusername");
  var sfz = document.getElementById("ypassword");
  inputElement.value = "123";
  sfz.value = "123";
 var closeButton = document.querySelector(".aui_close");
  if (closeButton) {
    closeButton.click();
  }

获取验证码数据

图片验证码这里我们简单分析下
在这里插入图片描述
通过代码元素:

<img src="/gagwy/manage/yzm.jsp?myrand=1699613287222" alt="" width="100" height="35" style="cursor:pointer;" title="单击图片刷新" onclick="this.src='/gagwy/manage/yzm.jsp?myrand='+Math.random();">

我们可以知道上面的代码中,src是通过随机数一直变化的,这时我们获取元素锚点可以从title入手

同理,构造提问方式

问题:

<img src="/gagwy/manage/yzm.jsp?myrand=1699613287222" alt="" width="100" height="35" style="cursor:pointer;" title="单击图片刷新" onclick="this.src='/gagwy/manage/yzm.jsp?myrand='+Math.random();">
通过title获取图片src

返回:

var imageElement = document.querySelector("img[title='单击图片刷新']");
var src = imageElement.getAttribute("src");

在这里插入图片描述

图片转base64

这里转换数据是因为获取到验证码后,我们需要通过第三方验证码识别接口,获得验证码的值,这里我采用某个云打码网站,有免费的体验额度,识别率还不错

接口文档
请求地址 http://api.jfbym.com/api/YmServer/customApi

参数说明
image图片的base64
token用户中心密钥

通过向Devchat的提问,可以获得到base64的转换方法,即通过获取src链接转换base64,转换成功后调用验证码方法get_code()返回验证码数值

var imageElement = document.querySelector("img[title='单击图片刷新']");
    if (imageElement) {
        var url = imageElement.getAttribute('src');
        console.log(url);
 //验证码识别
      // 创建一个Image对象
  var image = new Image();

  // 设置图片源路径
  image.src = url;

  // 当图片加载完成时执行回调函数
  image.onload = function() {
    // 创建一个<canvas>元素
    var canvas = document.createElement("canvas");
    var context = canvas.getContext("2d");

    // 设置画布的宽高与图片宽高相同
    canvas.width = image.width;
    canvas.height = image.height;

    // 将图片绘制到画布上
    context.drawImage(image, 0, 0);

    // 将画布内容转换为Base64编码
    var base64 = canvas.toDataURL("image/png");
      // 假设这是你获取到的带有前缀的Base64编码

  // 去掉前缀

        // 在回调函数内部进行进一步的处理
    get_code(base64);
  };
    } else {
        console.log("未找到匹配的元素");
    }

网络🛜请求封装📦

我是第一次使用油猴写接口请求,有很多问题,原生的requests还有跨域问题困扰了我许久,通过人工智能也没有解决,最后还是通过某篇文章解决了(不好意思,没做备份标记🏷️找不到了),这里采用GM_xmlhttpRequest完美解决,请求时中间会涉及到data数据的编码问题,这里我也一并解决了

注意⚠️‼️:需要在页面中引用标签,否则GM_xmlhttpReques无法使用(这里自己测试吧,电脑没在身边)
在这里插入图片描述

GM_xmlhttpRequest封装:

GM_xmlhttpRequest({
      method: method,
      url: url,
      onload: function(response) {
        var responseData = JSON.parse(response.responseText);
        console.log(responseData.data);
          if(responseData.data.code==0){
          //识别成功
               var yzmInput = document.getElementById("yzm");
              if (yzmInput) {
                  yzmInput.value = responseData.data.data;
                 // alert("识别成功");
              }
              else{
              alert("页面已更新请联系开发者");
              }
          }

      },
      onerror: function(error) {
        console.error('Error:', error);
      },
      data: formData
    });

接口请求

 function get_code(base64) {
    var url = 'http://api.jfbym.com/api/YmServer/customApi';
    var method = 'POST';
    var data = {
      token:'Ys…………🌟🌟-…………Q',
      image:base64,
      type:'10110'
    };

    var formData = new FormData();
    for (var key in data) {
      formData.append(key, data[key]);
    }

完整代码

下面是我的一些其他作品
在这里插入图片描述

仓库链接🔗:https://greasyfork.org/zh-CN/scripts/478733-公务员自动登陆脚本

最后

在当今数字化时代,软件开发领域正在经历着飞速的变革和增长。随着技术的不断演进,开发者们面临着越来越多的挑战,需要不断提高他们的创造力和生产力。正是在这个背景下,我们迎来了一款革命性的工具 - DevChat,这是一款专为开发者设计的编程助手,它能够与GPT互通,为开发者提供更便捷的编程体验。

DevChat是一个强大的插件,专为Visual Studio Code(VSCode)开发环境而设计,为开发者提供了前所未有的便利。它不仅简化了代码编写过程,还提供了智能的代码指导,使开发者能够更轻松地构建高质量的软件。这篇文章将带您深入了解DevChat的功能和优势,以及它如何成为您的开发利器。

DevChat的功能不仅仅限于传统的代码补全和语法检查,它引入了GPT技术,使其成为一个真正的智能编程助手。通过与GPT的互通,DevChat能够理解开发者的意图,并根据上下文提供有针对性的建议和代码片段。这意味着,无论您是初学者还是经验丰富的开发者,DevChat都能够为您提供有力的支持,加速您的开发工作。

🍋我的其他作品
《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦如果你也喜欢爬虫抓包分析,请关注我,我还完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐

【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/129078.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode150. 逆波兰表达式求值

Every day a Leetcode 题目来源&#xff1a;150. 逆波兰表达式求值 解法1&#xff1a;栈 用栈模拟逆波兰表示法表示的算术表达式的计算过程。 初始化一个栈 stk。 遍历字符串数组 tokens&#xff0c;根据当前字符串 token 决定操作&#xff1a; 若 token 是 1 个算符&am…

深度学习pytorch之hub模块

pytorchhub模块里面有很多模型 https://pytorch.org/hub/ github网址&#xff1a;https://github.com/pytorch/pytorch import torch model torch.hub.load(pytorch/vision:v0.10.0, fcn_resnet50, pretrainedTrue) # or # model torch.hub.load(pytorch/vision:v0.10.0, fc…

【Linux】进程程序替换

文章目录 替换原理站在进程的角度站在程序的角度初体验及理解原理 替换函数函数解释命名理解exec系列函数与main函数之间的关系在一个程序中调用我们自己写的程序 替换原理 创建子进程的目的是什么&#xff1f; ->想让子进程执行父进程代码的一部分 执行父进程对应的磁盘代码…

k8s存储

nfs 理论上nfs 其实并不是存储设备&#xff0c;它是一种远程共享存储服务。 k8s 存储卷 volume emptyDir&#xff1a;可以实现pod中的容器之间共享数据&#xff0c; 但是存储卷不能持久化数据&#xff0c;且会随着pod的生命周期一起删除。 hostpash&#xff1a;可以实现持久…

SIMULIA--Abaqus结构仿真篇

什么是 SIMULIA? 基于3DEXPERIENCE平台的品牌 多学科多领域的协同仿真与分析优化 三大核心仿真领域&#xff1a;电磁仿真 流体仿真 结构仿真 SIMULIA结构仿真是什么? 对结构进行力学、热学、声学等多学科计算&#xff0c;辅助于设计方案优化.采用数字化技术模拟产品性能&am…

Apifox日常使用(一键本地联调)

背景说明&#xff1a;现在的项目一般都是前后分离&#xff0c;线上出bug或者在进行联调时&#xff0c;有些时候后端需要重复模拟前端数据格式&#xff0c;在使用Apifox的情况下&#xff0c;如何快速造出后端需要的数据呢&#xff1f; 随便找一个网站&#xff0c;点开f12&#…

计算机类同学想要快速找到自己需要的毕设项目看这里

**点个关注不迷路 下面介绍如何快速找到自己需要的项目&#xff1a; 首先打开下面网址 https://www.yuque.com/mick-hanyi/javaweb 关键词搜索 一&#xff1a;pc 端搜索方法 下面是搜索方法举例&#xff1a;下面举得只是例子&#xff0c;具体根据自己得需求输入搜索 然后…

SQL第五次上机实验

1.向图书表&#xff08;Book&#xff09;插入以下记录 USE TSGL GO INSERT INTO Book VALUES(7-5402-1800-3,文学类,边城,沈从文,燕山出版社,10,5,5)2.向借阅表插入以下两条记录 USE TSGL GO INSERT INTO Lend VALUES(201207034201,7-5402-1800-3,00366240,2013-04-22),(2012…

管理员模式运行cmd或则bat文件的时候,出现路径错误的问题

最近在使用Comfyui, 不清楚啥原因&#xff0c;有时候Git无法访问&#xff0c;有时候文件夹无法访问的。就想把它的运行bat命令直接用 管理员模式运行&#xff0c;给到最高的权限&#xff0c;试试。但就这么简单的问题&#xff0c;搜了半天&#xff0c;都是一大堆不靠谱的教程&a…

教你遇到vcomp120.dll无法继续执行代码的解决方法

分享关于vcomp120.dll丢失的4个修复方法。在此之前&#xff0c;我想先简要介绍一下vcomp120.dll的作用以及它是什么。 首先&#xff0c;让我们来了解一下vcomp120.dll的作用。vcomp120.dll是一个动态链接库文件&#xff0c;它是由Microsoft Visual C 2012 Redistributable Pac…

nvm使用教程:node.js的管理工具

假如你有多个项目&#xff0c;每个项目对应node.js版本不同&#xff0c;就可以使用nvm版本管理工具。 都不用自己再去下载node.js了&#xff0c;通过管理工具下载就行 下载地址&#xff1a; https://nvm.uihtm.com/ 找个版本下载即可。 安装到你自定义目录&#xff1a;(除了…

PostgreSQL简介及安装步骤

PostgreSQL简介 PostgreSQL是一款开源的关系型数据库管理系统&#xff0c;具有强大的扩展性、高度的可定制性和可靠的稳定性&#xff0c;因此在企业级应用和开发领域中得到了广泛的应用。本文将介绍PostgreSQL的基本概念以及在各种操作系统上的安装步骤。 安装步骤 1. Window…

Vuex使用一文搞懂

什么是Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 是什么&#xff1f; | Vuex (vuejs.org) 图片来源&#xff0c;vuex官方文档 vuex安装 …

【ARM Trace32(劳特巴赫) 使用介绍 3 - trace32 访问运行时的内存】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 1.1 trace32 访问运行时的内存1.1.1 侵入式 运行时内存访问1.1.2 非侵入式运行时访问1.1.3 缓存一致性的非侵入式运行时访问 1.2 Trace32 侵入式和非侵入式 运行时访问1.2.1 侵入式访问1.2.2 非侵入式运行时访问 1…

STL常用库函数复习

文章目录 pairvectorliststackqueuequeuepriority_queuequeue双端队列 set✨set集合✨multiset 多重集合了解&#xff1a;unordered_set 无序集合 map&#x1f31f;map几乎不用&#xff1a;multimap一般不用&#xff1a;undered_map pair utility示例 #include <iostream&…

人工智能基础——Python:Numpy与矩阵

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

vue项目中订单完成提交按钮动画

1. 动画1 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>Order</title><!-- <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/re…

时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09; 目录 时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MATLAB实…

【C++】STL 标准模板库 ③ ( STL 容器简介 | STL 容器区别 | STL 容器分类 | 常用的 STL 容器 )

文章目录 一、STL 容器简介1、STL 容器区别2、STL 容器分类3、常用的 STL 容器 一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型的 STL 容器 的区别 主要是 节点 和 节点之间的关系模型 不同 ; 容器的内存空间是否连续 : 向量 vector 的内存空间…

微软宣布称Windows 再不会偷偷下载更新文件,真的吗?

导读时钟拨回到2015年&#xff0c;微软刚刚推出Windows 10操作系统时&#xff0c;一些Windows 7用户首次在线Update的升级文件大小居然高达6~8GB。这件事引发了大量的不满&#xff0c;一些按照流量计费和宽带不给力的用户怨言极为严重&#xff0c;其中德国用户把此事闹上了当地…