您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
通过知网的滑动验证码
- // ==UserScript==
- // @name Pass CNKI verification code
- // @namespace http://tampermonkey.net/
- // @version 2024-11-08
- // @description 通过知网的滑动验证码
- // @author You
- // @match https://kns.cnki.net/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=cnki.net
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- function bezierPath(start, end, control1, control2, steps) {
- const path = [];
- for (let t = 0; t <= 1; t += 1 / steps) {
- const x = (1 - t) ** 3 * start[0] +
- 3 * (1 - t) ** 2 * t * control1[0] +
- 3 * (1 - t) * t ** 2 * control2[0] +
- t ** 3 * end[0];
- const y = (1 - t) ** 3 * start[1] +
- 3 * (1 - t) ** 2 * t * control1[1] +
- 3 * (1 - t) * t ** 2 * control2[1] +
- t ** 3 * end[1];
- path.push([x + Math.random() * 2 - 1, y + Math.random() * 2 - 1]);
- }
- return path;
- }
- function simulateSliderMovement(sliderElement, start, end) {
- const control1 = [start[0] + (end[0] - start[0]) / 4, start[1] - 30];
- const control2 = [start[0] + (end[0] - start[0]) * 3 / 4, end[1] + 30];
- const path = bezierPath(start, end, control1, control2, 100);
- // 模拟按下
- sliderElement.dispatchEvent(new MouseEvent('mousedown', {
- clientX: start[0],
- clientY: start[1],
- bubbles: true
- }));
- // 模拟移动
- path.forEach(([x, y], i) => {
- setTimeout(() => {
- sliderElement.dispatchEvent(new MouseEvent('mousemove', {
- clientX: x,
- clientY: y,
- bubbles: true
- }));
- }, i * 1); // 控制速度
- });
- // 模拟释放
- setTimeout(() => {
- sliderElement.dispatchEvent(new MouseEvent('mouseup', {
- clientX: end[0],
- clientY: end[1],
- bubbles: true
- }));
- }, path.length * 10);
- }
- var txt = document.querySelector('.txt').textContent;
- if (txt == "系统检测到您的访问行为异常,请帮助我们完成 验证"){
- // 用法示例
- const sliderElement = document.querySelector('.verify-move-block');
- var start_x = sliderElement.getBoundingClientRect().x;
- var offset = document.querySelector('.verify-gap').offsetLeft;
- simulateSliderMovement(sliderElement, [start_x, 0], [start_x + offset + 30, 0]);
- }
- // Your code here...
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址