From 8df36069e938d6089456bd87900aefe2de87cf5a Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 25 Feb 2023 23:44:50 +0400 Subject: [PATCH] docs: add a README for Spanish Chinese Russian --- README.es.md | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.ru.md | 255 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.zh.md | 255 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 766 insertions(+) create mode 100644 README.es.md create mode 100644 README.ru.md create mode 100644 README.zh.md diff --git a/README.es.md b/README.es.md new file mode 100644 index 0000000..5a7e283 --- /dev/null +++ b/README.es.md @@ -0,0 +1,256 @@ +[English](README.md) | [Spanish](README.es.md) | [中国语文科](README.zh.md) | [Русский](README.ru.md) +

+ +

+ +![](https://img.shields.io/npm/v/2captcha-ts) +![](https://img.shields.io/npm/l/2captcha-ts) +![](https://img.shields.io/github/last-commit/dzmitry-duboyski/2captcha-ts) + + +## Descripción +Shell para API [2captcha](https://2captcha.com/?from=16653706) Servicio. Este shell soporta la solución de los siguientes tipos de captcha: reCAPTCHA V2, reCAPTCHA V3, hCaptcha, Arkose Labs FunCaptcha, image captcha, Geetest, Geetest V4, Yandex Smart Captcha, Lemin captcha, Amazon WAF, Cloudflare Turnstile. + +[2captcha](https://2captcha.com/?from=16653706) es un Servicio que le permite resolver muchos tipos diferentes de captcha. +Esta biblioteca sirve como un contenedor para la API del Servicio 2captcha para proporcionar a NodeJS una funcionalidad simple basada en `promise`. + +## Tipos de captcha admitidos: +- ✅ google-recaptcha (reCAPTCHA v2 / reCAPTCHA v3) +- ✅ hCaptcha +- ✅ Arkose Labs FunCaptcha +- ✅ base64 image captchas +- ✅ Geetest +- ✅ Geetest v4 +- ✅ Yandex Smart Captcha +- ✅ Lemin Cropped Captcha +- ✅ Cloudflare Turnstile +- ✅ Amazon WAF Captcha +- ⬜ Capy Puzzle +- ⬜ Click Captcha + +## Instalar + +```sh +npm install 2captcha-ts +``` +```sh +yarn add 2captcha-ts +``` + +## Ejemplos de uso + + +### reCAPTCHA: +```js +const Captcha = require("2captcha-ts") +// Nueva instancia de "solucionador" con su clave API +const solver = new Captcha.Solver("") + +// Solución reCAPTCHA, en la página de demostración que contiene 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); +}) +``` + +### hCaptcha: +```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); +}) +``` + +### Arkose Labs FunCaptcha: +```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); +}) +``` + +### Image captcha: +```js +const Captcha = require("2captcha-ts") +const fs = require("fs") +const solver = new Captcha.Solver("") + +// Obtenemos el contenido del archivo en formato base64 +const imageBase64 = fs.readFileSync("./tests/media/imageCaptcha_6e584.png", "base64") + +solver.imageCaptcha(imageBase64, { numeric: 4, min_len: 5, max_len: 5 }) +.then((res) => { + console.log(res); +}) +.catch((err) => { + console.log(err); +}) +``` + + +### GeeTest Captcha: +```js +const Captcha = require("2captcha-ts") +const solver = new Captcha.Solver("") + +// El valor de 'challenge' es dinámico +// Lea más sobre 'challenge' en la página 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); +}) +``` + +### GeeTest V4 Captcha: +```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); +}) +``` + +### Yandex Smart Captcha: +```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); +}) +``` + +### Lemin captcha: +```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); +}) +``` + +### Cloudflare Turnstile: +```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); +}) +``` + +### Amazon WAF Captcha (AWS WAF): +```js +const Captcha = require("2captcha-ts") +const solver = new Captcha.Solver("") + +// INFO: El valor 'context' es dinámico. Necesita obtener un valor nuevo de 'context' cada vez. +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); +}) +``` + +### Proxy: +```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@21.214.43.26", // Configuración del servidor proxy que está utilizando + proxytype: "HTTP" // Tipo de proxy utilizado: `HTTP`, `HTTPS`, `SOCKS4`, `SOCKS5`. +}) +.then((res) => { + console.log(res) +}) +.catch((err) => { + console.error(err.message) +}) +``` +--- + +## Artículos útiles +* [Cómo resolver el captcha Geetest v4](https://2captcha.com/ru/blog/geetest-v4-obkhod?from=16653706) +* [Solución automática reCAPTCHA V3-instrucciones para desarrolladores y clientes](https://2captcha.com/en/blog/avtomaticheskoe-reshenie-recaptcha-v3?from=16653706) +* Buscar el valor de `sitekey` para hCaptcha + +--- +## Ejemplos de uso con código fuente y descripción +* [Solución de captcha GeeTest usando Puppeteer](https://github.com/dzmitry-duboyski/GeeTest-demo) + +--- + +Este proyecto es una bifurcación [de este paquete](https://www.npmjs.com/package/2captcha ). En esta versión del paquete, se agregó soporte para nuevos tipos de captcha y se cambió la forma de pasar los parámetros de captcha. Los parámetros de captcha ahora se pasan como un objeto ({parámetro: valor}). Así como otros cambios cosméticos. Puede Leer más sobre los cambios realizados [aquí](https://github.com/dzmitry-duboyski/2captcha-ts/releases). \ No newline at end of file diff --git a/README.ru.md b/README.ru.md new file mode 100644 index 0000000..aba2a52 --- /dev/null +++ b/README.ru.md @@ -0,0 +1,255 @@ +[English](README.md) | [Spanish](README.es.md) | [中国语文科](README.zh.md) | [Русский](README.ru.md) +

+ +

+ +![](https://img.shields.io/npm/v/2captcha-ts) +![](https://img.shields.io/npm/l/2captcha-ts) +![](https://img.shields.io/github/last-commit/dzmitry-duboyski/2captcha-ts) + + +## Описание +Оболочка вокруг API сервиса [2captcha](https://2captcha.com/?from=16653706). Эта оболочка поддерживает решение следующих типов капч: reCAPTCHA V2, reCAPTCHA V3, hCaptcha, Arkose Labs FunCaptcha, image captcha, Geetest, Geetest V4, Yandex Smart Captcha, Lemin captcha, Amazon WAF, Cloudflare Turnstile. + +[2captcha](https://2captcha.com/?from=16653706) это сервис, который решает множество различных типов капч. Эта библиотека служит оболочкой для их API, чтобы предоставить NodeJS простую функциональность, основанную на `promise`. + +## Поддерживаемые типы капч: +- ✅ google-recaptcha (reCAPTCHA v2 / reCAPTCHA v3) +- ✅ hCaptcha +- ✅ Arkose Labs FunCaptcha +- ✅ base64 image captchas +- ✅ Geetest +- ✅ Geetest v4 +- ✅ Yandex Smart Captcha +- ✅ Lemin Cropped Captcha +- ✅ Cloudflare Turnstile +- ✅ Amazon WAF Captcha +- ⬜ Capy Puzzle +- ⬜ Click Captcha + +## Установка + +```sh +npm install 2captcha-ts +``` +```sh +yarn add 2captcha-ts +``` + +## Примеры использования + + +### reCAPTCHA: +```js +const Captcha = require("2captcha-ts") +// Новый экземпляр "solver" со значением вашего ключа 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); +}) +``` + +### hCaptcha: +```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); +}) +``` + +### Arkose Labs FunCaptcha: +```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); +}) +``` + +### Image captcha: +```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(imageBase64, { numeric: 4, min_len: 5, max_len: 5 }) +.then((res) => { + console.log(res); +}) +.catch((err) => { + console.log(err); +}) +``` + + +### GeeTest Captcha: +```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); +}) +``` + +### GeeTest V4 Captcha: +```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); +}) +``` + +### Yandex Smart Captcha: +```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); +}) +``` + +### Lemin captcha: +```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); +}) +``` + +### Cloudflare Turnstile: +```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); +}) +``` + +### Amazon WAF Captcha (AWS WAF): +```js +const Captcha = require("2captcha-ts") +const solver = new Captcha.Solver("") + +// INFO: Значение `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); +}) +``` + +### Proxy: +```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@21.214.43.26", // Параметры используемого вами прокси сервера + proxytype: "HTTP" // Тип используемого прокси: `HTTP`, `HTTPS`, `SOCKS4`, `SOCKS5`. +}) +.then((res) => { + console.log(res) +}) +.catch((err) => { + console.error(err.message) +}) +``` +--- + +## Полезные статьи +* [Как решать капчу Geetest v4](https://2captcha.com/ru/blog/geetest-v4-obkhod?from=16653706) +* [Автоматическое решение reCAPTCHA V3 - инструкция для разработчиков и заказчиков](https://2captcha.com/ru/blog/avtomaticheskoe-reshenie-recaptcha-v3?from=16653706) +* Поиск значения `sitekey` для hCaptcha + +--- +## Примеры использования с исходным кодом и описанием +* [Решение капчи GeeTest используя Puppeteer](https://github.com/dzmitry-duboyski/GeeTest-demo) + +--- + +Этот проект является форком [этого пакета](https://www.npmjs.com/package/2captcha ). В эту версию пакета, добавлена поддержка новых типов капч и изменен способ передачи параметров капчи. Параметры капчи теперь передаются в виде объекта ({параметр: значение}). А также другие косметические изменения. Подробнее о сделанных изменениях можно прочитать [тут](https://github.com/dzmitry-duboyski/2captcha-ts/releases). \ No newline at end of file diff --git a/README.zh.md b/README.zh.md new file mode 100644 index 0000000..0ef2985 --- /dev/null +++ b/README.zh.md @@ -0,0 +1,255 @@ +[English](README.md) | [Spanish](README.es.md) | [中国语文科](README.zh.md) | [Русский](README.ru.md) +

+ +

+ +![](https://img.shields.io/npm/v/2captcha-ts) +![](https://img.shields.io/npm/l/2captcha-ts) +![](https://img.shields.io/github/last-commit/dzmitry-duboyski/2captcha-ts) + + +## 资料描述 +提供[2captcha](https://2captcha.com/?from=16653706)服务的API的包装器. + 這個 npm 包包括對以下驗證碼類型的支持:reCAPTCHA V2, reCAPTCHA V3, hCaptcha, Arkose Labs FunCaptcha, image captcha, Geetest, Geetest V4, Yandex Smart Captcha, Lemin captcha, Amazon WAF, Cloudflare Turnstile. + +[2captcha](https://2captcha.com/?from=16653706)是一項服務,可讓您解決許多不同類型的驗證碼。這個 npm 包包裝了[2captcha](https://2captcha.com/?from=16653706)API 來為 NodeJS 提供簡單的基於`promise`的功能。 + +## 支持的驗證碼 +- ✅ google-recaptcha (reCAPTCHA v2 / reCAPTCHA v3) +- ✅ hCaptcha +- ✅ Arkose Labs FunCaptcha +- ✅ base64 image captchas +- ✅ Geetest +- ✅ Geetest v4 +- ✅ Yandex Smart Captcha +- ✅ Lemin Cropped Captcha +- ✅ Cloudflare Turnstile +- ✅ Amazon WAF Captcha +- ⬜ Capy Puzzle +- ⬜ Click Captcha + +## 安装/安装 + +```sh +npm install 2captcha-ts +``` +```sh +yarn add 2captcha-ts +``` + +## 使用示例 + + +### reCAPTCHA: +```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); +}) +``` + +### hCaptcha: +```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); +}) +``` + +### Arkose Labs FunCaptcha: +```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); +}) +``` + +### Image captcha: +```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(imageBase64, { numeric: 4, min_len: 5, max_len: 5 }) +.then((res) => { + console.log(res); +}) +.catch((err) => { + console.log(err); +}) +``` + + +### GeeTest Captcha: +```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); +}) +``` + +### GeeTest V4 Captcha: +```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); +}) +``` + +### Yandex Smart Captcha: +```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); +}) +``` + +### Lemin captcha: +```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); +}) +``` + +### Cloudflare Turnstile: +```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); +}) +``` + +### Amazon WAF Captcha (AWS WAF): +```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); +}) +``` + +### Proxy: +```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@21.214.43.26", // 您正在使用的代理服务器的参数 + proxytype: "HTTP" // 使用的代理服务器类型: `HTTP`, `HTTPS`, `SOCKS4`, `SOCKS5`. +}) +.then((res) => { + console.log(res) +}) +.catch((err) => { + console.error(err.message) +}) +``` +--- + +## 有用的文章 +* [如何解决Geetest v4 captcha](https://2captcha.com/ru/blog/geetest-v4-obkhod?from=16653706) +* [自动reCAPTCHA V3解决方案-开发人员和客户的说明](https://2captcha.com/blog/avtomaticheskoe-reshenie-recaptcha-v3?from=16653706) +* 搜索hCaptcha的`sitekey`值 + +--- +## 带有源代码和描述的使用示例 +* [使用`puppeteer`测试Captcha解决方案](https://github.com/dzmitry-duboyski/GeeTest-demo) + +--- +这个项目是这个包的一个分支https://www.npmjs.com/package/2captcha. 在此版本的软件包中,添加了对新类型captcha的支持,并更改了传输captcha参数的方法。 Captcha参数现在作为对象({parameter:value})传递。 以及其他化妆品的变化。 您可以阅读有关所做更改的更多信息 这里 https://github.com/dzmitry-duboyski/2captcha-ts/releases. \ No newline at end of file