A wrapper around the 2captcha API. This wrapper support reCAPTCHA V2, reCAPTCHA V3, hCaptcha, Arkose Labs FunCaptcha, image captcha,Сoordinates (Click Captcha), Geetest, Geetest V4, Yandex Smart Captcha, Lemin captcha, Amazon WAF, Cloudflare Turnstile, Ca
npm install @shynome/2captcha-tsEnglish | Spanish | 中国语文科 | Русский




2captcha是一項服務,可讓您解決許多不同類型的驗證碼。這個 npm 包包裝了2captchaAPI 來為 NodeJS 提供簡單的基於promise的功能。
base64 format)``sh`
npm install 2captcha-ts`sh`
yarn add 2captcha-ts
js
const Captcha = require("2captcha-ts")
// 具有 2CAPTCHA API 密鑰值的新“求解器”實例。
const solver = new Captcha.Solver("")// reCAPTCHA 解決方案,在包含 reCAPTCHA V2 的演示頁面上
solver.recaptcha({
pageurl: 'https://2captcha.com/demo/recaptcha-v2',
googlekey: '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u'
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.hcaptcha({
pageurl: "https://2captcha.com/demo/hcaptcha?difficulty=moderate",
sitekey: "b76cd927-d266-4cfb-a328-3b03ae07ded6"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.funCaptcha({
pageurl: "https://funcaptcha.com/tile-game-lite-mode/fc/api/nojs/?pkey=804380F4-6844-FFA1-ED4E-5877CA1F1EA4&lang=en",
publickey: "804380F4-6844-FFA1-ED4E-5877CA1F1EA4"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const fs = require("fs")
const solver = new Captcha.Solver("")// 獲取base64格式的文件內容
const imageBase64 = fs.readFileSync("./tests/media/imageCaptcha_6e584.png", "base64")
solver.imageCaptcha({
body: imageBase64,
numeric: 4,
min_len: 5,
max_len: 5
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`
$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")//
challenge 值是動態的
// 关于参数challenge的更多信息写在第https://2captcha.com/p/geetest页
solver.geetest({
pageurl: 'https://2captcha.com/demo/geetest',
gt: '81388ea1fc187e0c335c0a8907ff2625',
challenge: ''
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.geetestV4({
pageurl: 'https://2captcha.com/demo/geetest-v4',
captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73'
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.yandexSmart({
pageurl: "https://captcha-api.yandex.ru/demo",
sitekey: "FEXfAbHQsToo97VidNVk3j4dC74nGW1DgdxjtNB9"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.lemin({
pageurl:'https://dashboard.leminnow.com/auth/login',
captcha_id: 'CROPPED_099216d_34698cb7b8574265925f493cbcb3df4d',
div_id: 'lemin-cropped-captcha',
api_server: 'https://api.leminnow.com/captcha/v1/cropped'
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.cloudflareTurnstile({
pageurl: "https://app.nodecraft.com/login",
sitekey: "0x4AAAAAAAAkg0s3VIOD10y4"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")// INFO: 'Context'值是动态的,每次都需要从captcha页面获取新的
context值。
solver.amazonWaf({
pageurl: "https://non-existent-example.execute-api.us-east-1.amazonaws.com/latest",
sitekey: "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AHMDLodoefdvyOnsHMRt...",
context: "9BUgmlm48F92WUoqv97a49ZuEJJ50TCk9MVr3C7WMtQ0X6flVbufM4n8mjFLmbLVAPgaQ...",
iv: "CgAHbCe2GgAAAAAj",
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.capyPuzzle({
pageurl: "https://www.capy.me/account/register/",
captchakey: "PUZZLE_Cme4hZLjuZRMYC3uh14C52D3uNms5w"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")
solver.dataDome({
pageurl: "https://rendezvousparis.hermes.com/client/register",
captcha_url: "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMAEuQtkf4k1c0ABZhYZA%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=mY4z7GNmh7Nt1lAFwpbNHAOcWPhyPgjHD2K1Pm~Od1iEKYLUnK3t7N2ZGUj8OqDK65cnwJHtHwd~t902vlwpSBA5l4ZHbS1Qszv~jEuEUJNQ_jMAjar2Kj3kq20MRJYh&t=fe&referer=https%3A%2F%2Frendezvousparis.hermes.com%2Fclient%2Fregister&s=40119&e=67fef144ac1a54dbd7507776367d2f9d5e36ec3add17fa22f3cb881db8385838",
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
proxy: "login:password@1.2.3.4:8888", // The (Username : Password @ Address : Port) of our chosen proxy
proxytype: "http" // The 'Type' of proxy, http, https, socks, ect.
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")
solver.cyberSiARA({
pageurl: "https://www.cybersiara.com/book-a-demo",
master_url_id: "OXR2LVNvCuXykkZbB8KZIfh162sNT8S2",
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")
solver.mtCaptcha({
pageurl: "https://service.mtcaptcha.com/mtcv1/demo/index.html",
sitekey: "MTPublic-DemoKey9M"
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")
const imageBase64 = fs.readFileSync("./tests/media/hCaptchaImage.jpg", "base64")solver.coordinates({
body: imageBase64,
textinstructions: 'Select all photos containing the boat'
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.boundingBox({
image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR4AAACwCAIAAAB...",
textinstructions: "Circle all the cars in the image.",
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
`$3
`js
const Captcha = require("2captcha-ts")
const solver = new Captcha.Solver("")solver.recaptcha({
pageurl: 'https://2captcha.com/demo/recaptcha-v2',
googlekey: '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
proxy: "login:password@1.2.3.4:8888", // 您正在使用的代理服务器的参数
proxytype: "HTTP" // 使用的代理服务器类型:
HTTP, HTTPS, SOCKS4, SOCKS5.
})
.then((res) => {
console.log(res)
})
.catch((err) => {
console.error(err.message)
})
`有用的文章
* 如何解决Geetest v4 captcha
* 自动reCAPTCHA V3解决方案-开发人员和客户的说明
* 搜索hCaptcha的sitekey值带有源代码和描述的使用示例
* 使用puppeteer`测试Captcha解决方案---
这个项目是这个包的一个分支https://www.npmjs.com/package/2captcha. 在此版本的软件包中,添加了对新类型captcha的支持,并更改了传输captcha参数的方法。 Captcha参数现在作为对象({parameter:value})传递。 以及其他化妆品的变化。 您可以阅读有关所做更改的更多信息 这里 https://github.com/dzmitry-duboyski/2captcha-ts/releases.