nodejs识别验证码,图片验证码

Nodejs Playwright 2Captcha 验证码识别实现自动登陆 日常工作当中,为了提高工作效率,我们可能会写脚本来自动执行任务。有些网站因为需要用户登陆,所以脚本的自动登陆功能必不可少。不过我们在登陆网站的时候经常会出现验证码,验证码的目的就是为了防止机器登陆、自动化脚本操作,那么有没有办法让脚本能自动识别验证码实现登陆呢?接下来我以 B 站为例给大家讲解下,如何解决自动登陆脚本中最关键的验证码问题。 阅读详情
最近做自动化遇到验证码的问题,之前识别字母和数字验证码都是使用tesseract.js,识别率都不错,中文也可以识别不过识别率不高。
我自己平常使用识别验证码的方式主要有三种,
  • 一种是上面说的tesseract.js,
  • 另一种骚操作就是使用通用文字识别工具,即OCR,很多云计算公司都提供了OCR识别。如果遇到中文验证码,使用OCR还是比较方便的。
  • 还有一种就是用node去调用Python的验证码识别程序
不过这次遇到的验证码字母都进行了扭曲,且字母之间有重叠,使用tesseract.js识别率比较低,自己又不想进行识别训练。。。

在这里插入图片描述

上网找了一下验证码识别平台,试了斐斐打码和超级鹰,识别率都很高。超级鹰提供了nodejs的demo,不过不能正常运行,只能自食其力了。
//recongizeCode.js 
var request = require('request'),
	fs   	 = require('fs');

function recongizeCode(pathName){//pathName = './1.jpg'
	var file_base64 = fs.readFileSync(pathName,'base64');

	const formData = {
		'user': 'usercount',
		'pass': 'password',
		'softid':'id',  //软件ID 可在用户中心生成
		'codetype': '3004',  //验证码类型 http://www.chaojiying.com/price.html 选择
		'file_base64': file_base64
	};
	return new Promise(function(resolve,reject){
		request({
		    url: 'http://upload.chaojiying.net/Upload/Processing.php',
		    method: "POST",
		    headers: {
		        "content-type": "application/x-www-form-urlencoded",
		    },
		    body: JSON.stringify(formData)
		}, function(error, response, body) {
		    if (!error && response.statusCode == 200) {
		    	resolve(JSON.parse(body)['pic_str'])
		        console.log(body) // 请求成功的处理逻辑
		    }
		});
	})
}
module.exports = recongizeCode
//调用方式
recongizeCode('./1.jpg')

感谢阅读!欢迎关注微信公众号”混沌前端“,获取推送更新。

使用 Node.js 和 Tesseract.js 实现验证码识别 Tesseract.js 是 Tesseract OCR 的 JavaScript 实现,可以在浏览器和 Node.js 环境中运行。在这段代码中,我们使用 sharp 将图像转换为灰度并进行二值化处理,生成一个新的图像 processed_captcha.png,然后再用 Tesseract.js 对处理后的图像进行识别。接下来,我们编写一个简单的 Node.js 脚本,通过 Tesseract.js 识别验证码图像。在你的 Node.js 项目中安装 tesseract.js。// 保存处理后的图像。 阅读详情

相关推荐

JavaScript原生识别图片验证码

用原生JavaScript写的以图找图的简单示例,可以应用到验证码的识别,以及其他图片操作的简单思路分享.

yzw675628706的博客 1678

nodejs识别图片验证码

nodejs识别图片验证码。

qq_41720760的博客 1036

识别滑动验证码缺口

轮廓筛选:通过面积、周长、位置筛选目标轮廓,使用 boundingRect 获取外接矩形,使用 contourArea 计算轮廓面积,使用 arcLength 计算轮廓周长。这里我们以 JavaScript 为例,通过 opencv4nodejs 实现缺口识别。用户需要将滑块拖动到验证码右侧的缺口位置,当滑块匹配缺口时,验证通过。可以使用 OpenCV 实现滑动验证码缺口的识别。输入一张带有缺口的验证码图片,输出缺口的位置(通常为缺口左侧的横坐标)。读取验证码图片:使用 cv.imread 读取图片。

asfdsgdf的博客 1060

【Node.js】图片验证码识别

现在越来越多的网站采取图片验证码,防止机器恶意向服务端发送请求。但是常规的图片验证码也不是非常安全了。有非常多第三方库可以对图片上的数字文字等进行识别。

小秀的博客 1661

识别滑动验证码中的缺口位置

轮廓筛选:通过面积、周长、位置筛选目标轮廓,使用 boundingRect 获取外接矩形,使用 contour.area 计算轮廓面积,使用 contour.arcLength 计算轮廓周长。这里我们以 JavaScript 语言为例,通过 Node.js 和 OpenCV4nodejs 实现缺口识别。可以使用 OpenCV 实现滑动验证码缺口的识别。输入一张带有缺口的验证码图片,输出缺口的位置(通常为缺口左侧的横坐标)。用户需要将滑块拖拽到验证码右侧的缺口位置,当滑块匹配缺口时,验证通过。

asfdsgdf的博客 664

Nodejs Playwright 自动识别验证码登陆B站

原文:https://lwebapp.com/zh/post/bypass-captcha 需求 日常工作当中,为了提高工作效率,我们可能会写脚本来自动执行任务。有些网站因为需要用户登陆,所以脚本的自动登陆功能必不可少。 不过我们在登陆网站的时候经常会出现验证码,验证码的目的就是为了防止机器登陆、自动化脚本操作,那么有没有办法让脚本能自动识别验证码实现登陆呢? 接下来我以 B 站为例给大家讲解下,如何解决自动登陆脚本中最关键的验证码问题。 探索 首先需要体验下这个网站的登陆方式,了解下它的验证码类型。 打开

lwebapp.com 3307

转:nodejs识别验证码,图片验证码

最近做自动化遇到验证码的问题,之前识别字母和数字验证码都是使用tesseract.js,识别率都不错,中文也可以识别不过识别率不高。 我自己平常使用识别验证码的方式主要有三种, 一种是上面说的tesseract.js, 另一种骚操作就是使用通用文字识别工具,即OCR,很多云计算公司都提供了OCR识别。如果遇到中文验证码,使用OCR还是比较方便的。 还有一种就是用node去调用Python的验证码识别程序 不过这次遇到的验证码字母都进行了扭曲,且字母之间有重叠,使用tesseract.js识别率比较低,自己又

gaoqing1129的专栏 942

告别Win11睡眠假死:深入解析Modern Standby S0与S3冲突及注册表修复方案

本文深入解析了Windows 11中Modern Standby(S0)与传统睡眠(S3)模式的冲突,该冲突是导致电脑睡眠后出现假死、断网等问题的根源。文章提供了通过修改注册表键值(PlatformAoAcOverride)强制启用稳定S3睡眠的终极修复方案,并附有详细诊断步骤与避坑指南,帮助用户彻底解决睡眠故障。

ol789012的博客 823

Python 100%解析svg-captcha验证码

前段时间接到一个需求,登陆某一个网站,然后录入数据;登陆的时候需要有验证码验证码是一个请求路径,每请求一次验证码都不一样本来一开始以为是常用的图片验证码,但是当查看页面源码是,并没有发现对应的验证码图片,而是发现了一个由svg标签组装的代码,如下:

qq_65377318的博客 1584

MFC下使用C++操作Word文档

由于项目需求,在MFC环境下操作将数据和图片写入word文档,之前没有接触过,网上查阅了很多资料,终于把任务完成。理解的不是很透彻,但是这些东西应该够用了,写篇博客记录一下,以便以后再用到。 (1)VS环境下创建一个MFC应用程序,然后在项目上单击右键,选择 类向导-----添加类----类型库中的MFC类。在弹出的对话框中选择文件,位置选择office安装目录下的...

GIS_yuhua的博客 7579

切比雪夫插值

切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。

平和少年的博客 1647

某东旋转验证码逆向(python+nodejs)

某东旋转验证码逆向

a3252029740的博客 1383

大数据工程中的数据血缘分析工具比较

数据血缘(Data Lineage)是大数据治理中的核心组成部分,它描述了数据从源头到目标的完整流动路径。系统介绍数据血缘的核心概念和技术原理比较主流开源和商业数据血缘工具的功能特点提供数据血缘分析的实践指南和选型建议本文首先介绍数据血缘的基本概念,然后深入分析其技术原理和实现方法,接着比较主流工具的特点,最后通过实际案例展示应用场景。数据血缘(Data Lineage): 描述数据从源头到目标的完整流动路径,包括所有转换和处理步骤元数据(Metadata)

大数据洞察的博客 900

Node.js图片验证码识别功能

教程下载地址: 网赚博客http://www.piaodoo.com/创业项目排行榜前十名http://www.piaodoo.com/现在越来越多的网站采取图片验证码,防止机器恶意向服务端发送请求。但是常规的图片验证码也不是非常安全了。有非常多第三方库可以对图片上的数字文字等进行识别。

菜鸟教程 708

YOLOv11改进 | Conv/卷积篇 | 轻量化多尺度异构卷积(MSHC)优化YOLOv11精度(全网独家首发)

本文介绍了Hype-YOLO提出的MANet结构,这是C3、C2f、C3k2的升级版,能显著增强特征提取能力。MANet整合了DSConv和C2f结构,通过多分支异构设计提升梯度流动和特征语义深度。文章详细解析了MSHC模块的原理,包括其多尺度并行建模、通道混洗等核心机制,并提供了完整的代码实现和训练教程。实验表明,Hype-YOLO的精度优于YOLOv11。该结构在保持轻量化的同时,通过异构分支设计实现了更丰富的特征表达,适用于目标检测等视觉任务。

Snu77的博客 952

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

用node.js实现验证码简单识别

概述 在验证码识别上,node.js其实也只是打酱油的角色,因为已经有成熟的工具做这个事情,而node只需要做调度就行了。 所需工具 那么介绍一下这些工具吧 Tesseract 开源的 OCR 识别工具,目前由 Google 维护,支持中文,默认的识别率很低哈,特别是中文,但是可以自己提供样本,训练提高识别率。 graphicsmag...

weixin_34120274的博客 822

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

eoLinker-API_Shop_验证码识别与生成类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等...

以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务。 六位图片验证码生成:包括纯数字、小写字母、大写字母、大小写混合、数字+小写、数字+大写、数字+大小写等情况。 四位图片验证码生成:包括纯数字、小写字母、大写字母、大小写混合、数字+小写、数字+大写、数字+大小写等情况。 简单验证码识别:验证码类型 : 数字+字母, ...

API-Shop的博客 312

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

node实现登录图片验证码

今天捣鼓自己的后台项目的时候有一个登录验证码的功能需要实现,开个坑记录下。 具体源码: 我的博客 完整功能界面: 实现 实现这里的图形验证码我是用的node里svg-captcha模块,可以全部支持字符和数字,全平台支持,用起来很简单。 1.安装 cnpm i svg-captcha --save 复制代码2.在使用的地方导入 var svgCaptcha = require('svg-ca...

weixin_33750452的博客 1364

NodeJS 搭建图形识别功能

第一步:创建项目存储路径(C:\node_workspace),创建NodeJs 项目(image_reco) 并初始化 cdC:\node_workspace mkdirimage_reco cnpm init 第二步:图形识别依赖模块介绍和本地安装 node-images: Node.js 轻量级跨平台图像编解码库tesseract.js: 纯 JS 的 OCR 库支持 62 种...

zhouzhiwengang的专栏 5691

node.js 爬虫 登录验证码_nodeJS实现识别验证码(tesseract-ocr+GraphicsMagick)

背景最近在写一个爬虫的小工具,卡在登录这里。想爬的网站需要登录才能获取数据,登录又需要输入验证码。好在验证码是简单的验证码,还可以自己识别试试。需求分析1、保存验证码图片2、识别验证码3、对识别的验证码进行人工校准功能实现1、保存验证码图片虽然每个网站不一定一样,但是大体的思路是差不多的,我要爬取的网站是后台返回了一个验证码图片和cookie,所以我们需要把这两个东西都存下来。这里用到了node中...

weixin_30400859的博客 1367

Nodejs 服务端生成验证码

npm install --save svg-captcha   什么情况下使用SVG验证码? 无法使用 google recaptcha 无法安装 c++ 模块 安装 npm install --save svg-captcha 使用方法 var svgCaptcha = require('svg-captcha'); var c = svgCaptcha.crea...

兰亭古墨 3869
上一篇: nodejs在Windows下执行shell脚本
下一篇: linux运行puppeteer报错 Failed to launch chrome!
一颗小行星!
博客等级 码龄15年 74粉丝 121原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

一颗小行星!

恰饭ing

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

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

打赏作者

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

抵扣说明:

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

余额充值