@antiadmin/anticaptchaofficial

中文文档
1.0.57发布于 2026/09/24ISCCommonJS近 30 天下载 7.1万

官方反Captcha.com npm 库

中文使用文档
文档目录22 节
  1. 官方反Captcha.com npm模块
  2. 目录
  3. 模块安装 :
  4. 导入并检查同步模式中的余额 :
  5. 与反卡普查合作
  6. 解析图像 captcha :
  7. 在没有代理的情况下收回 V2 :
  8. 以代理重现 V2 :
  9. 重现 V3 :
  10. HCaptcha 没有代理 :
  11. 无代理的旋转:
  12. 带有代理服务器的转动 :
  13. 反犯罪任务 :
  14. Funcaptcha / Arkoselabs 没有代理 :
  15. Funcaptcha / Arkoselabs 通过代理:
  16. Geest 版本 3 没有代理
  17. Geest 版本 4 没有代理
  18. 要坐标的图像
  19. 普罗索波卡布查
  20. 没有代理的友好卡普查 :
  21. 亚马逊WAF:
  22. 没有代理的 Altcha Captcha :

官方反Captcha.com npm模块

目录

官方反Captcha.com npm包用于用文本解析图像, Recaptcha v2/v3 Enterpise, Funcaptcha, Gee Test, HCaptcha.

反抓捕 是一个历史最悠久、最便宜的网络服务, 通过和我们一起解决卡普查问题,你帮助世界上最贫穷地区的人赚钱,这不仅满足了他们的基本需要,而且还使他们有能力在经济上帮助家人,学习和避免在他们不快乐的地方工作.

要使用您需要的服务 注册 补上你的平衡。 价格从每张图像卡普查0.05美元起,再卡普查0.02美元起。 图像每1000美元为0.5美元,再抓1000美元为2美元.

为了获得更多的技术资料和文章,请访问 文档 页 次.

模块安装 :

npm install @antiadmin/anticaptchaofficial

导入并检查同步模式中的余额 :

(async() => {
    
    const ac = require("@antiadmin/anticaptchaofficial");
    ac.setAPIKey('YOUR_API_KEY');
    try {
        const balance = await ac.getBalance();
        console.log(`my balance is $${balance}`);
        if (balance <= 0) {
            throw "negative balance"
        }
        console.log("solving a captcha..")
        // const token = await ac.solveRecaptchaV2Proxyless('http://DOMAIN.COM', 'WEBSITE_KEY');
        // const fs = require('fs');
        // const text = await ac.solveImage(fs.readFileSync('captcha.png', { encoding: 'base64' }), true)
    } catch (e) {
        console.log("got error: ", e.toString());
    }
    
})();

或者做同样的承诺:

const ac = require("@antiadmin/anticaptchaofficial");
ac.setAPIKey('YOUR_API_KEY');
ac.getBalance()
     .then(balance => {
         console.log('my balance is $' + balance)
         if (balance <= 0) {
             return false;
         }
         console.log("solving a captcha..")
         // ac.solveRecaptchaV2Proxyless('http://DOMAIN.COM', 'WEBSITE_KEY')
         //     .then(token => {
         //         console.log('Got g-response:', token)
         //         // do something
         //     })
         //     .catch(error => {
         //         console.log('test received error ' + error)
         //         return false;
         //     });
     })
     .catch(error => console.log('received error '+error))

禁用动词输出到控制台 :

ac.shutUp();

请求订阅贷项余额 :
const remainingCredits = await ac.getCreditsBalance();

与反卡普查合作

指定要挣取的软度 10%佣金 从所有的卡布查花 在你的应用. 让你的软身进来 开发者中心。 。 。 .

ac.setSoftId(SOFT_ID_NUMBER);

 

解析图像 captcha :

const fs = require('fs');
const captcha = fs.readFileSync('captcha.png', { encoding: 'base64' });

// Additional flags, see https://anti-captcha.com/apidoc/task-types/ImageToTextTask for description:
// ac.settings.phrase = true;                  // 2 words
// ac.settings.case = true;                    // case sensitivity
// ac.settings.numeric = 1;                    // only numbers
// ac.settings.comment = "only green letters"; // text comment for workers
// ac.settings.math = true;                    // math operation like 50+2
// ac.settings.minLength = 1;                  // minimum amount of characters
// ac.settings.maxLength = 10;                 // maximum number of characters
// ac.settings.languagePool = 'en';            // language pool
const text = await ac.solveImage(captcha, true);

报告上次解析的图像 captcha 不正确( 必须读取) 这个 在使用前:

await ac.reportIncorrectImageCaptcha();

 

在没有代理的情况下收回 V2 :

ac.settings.recaptchaDataSValue = 'set me for google.com domains';
const gresponse = ac.solveRecaptchaV2Proxyless('http://DOMAIN.COM', 'WEBSITE_KEY');
console.log('g-response: '+gresponse);
console.log('google cookies:');
console.log(ac.getCookies());
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

学习如何使用 g 响应 这个 第3条.

报告上次解析的 Recaptcha v2/v3 错误( 必须读取) 这个 在使用前:

await ac.reportIncorrectRecaptcha();

报告复选 v3 已正确解析( 更多信息) 这里 在使用前:

await ac.reportCorrectRecaptcha();

以代理重现 V2 :

const gresponse = await ac.solveRecaptchaV2ProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116',
    'some=cookies');

Solve Recaptcha V2-隐形(注意第3个参数"真"):

const gresponse = await ac.solveRecaptchaV2Proxyless('http://DOMAIN.COM', 'WEBSITE_KEY', true)
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

重现 V3 :

const gresponse = await ac.solveRecaptchaV3('http://DOMAIN.COM',
    'WEBSITE_KEY',
    0.3, //minimum score required: 0.3, 0.7 or 0.9
    'PAGE_ACTION_CAN_BE_EMPTY');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

解析复选 V2 企业没有代理 :

const gresponse = await ac.solveRecaptchaV2EnterpriseProxyless(
    'http://DOMAIN.COM', 
    'WEBSITE_KEY', 
    {   //enterprise payload:
        "s" : "SOME_TOKEN",
        "action" : "form_submit"
    },
    false);
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

HCaptcha 没有代理 :

const token = await ac.solveHCaptchaProxyless('http://DOMAIN.COM', 'WEBSITE_KEY', 'FULL USER AGENT HERE');

// use this userAgent for posting the form with token!
const userAgent = ac.getHcaptchaUserAgent();

//some Hcaptchas also produce "respkey" value, this is how to get it:
const respKey = ac.getHcaptchaRespKey();

报告上次解析的 Hcaptcha 错误 :

await ac.reportIncorrectHcaptcha();

 

无代理的旋转:

const token = await ac.solveTurnstileProxyless('http://DOMAIN.COM', 'WEBSITE_KEY', 'optional_action', 'optional_cData_token');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

带有代理服务器的转动 :

const token = await ac.solveTurnstileProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    'optional_action',
    'optional_cData_token');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

反犯罪任务 :

const solution = await ac.solveAntiGateTask(
    'http://antigate.com/logintest.php', 
    'Sign-in and wait for control text', 
    { 
        "login_input_css": "#login",
        "login_input_value": "the login",
        "password_input_css": "#password",
        "password_input_value": "the password",
        "control_text": "You have been logged successfully" 
    });
console.log('cookies: ', solution.cookies);
console.log('localStorage: ', solution.localStorage);
console.log('url: ', solution.url);

与代理相同 :

const solution = await ac.solveAntiGateTask(
    'http://antigate.com/logintest.php', 
    'Sign-in and wait for control text', 
    { 
        "login_input_css": "#login",
        "login_input_value": "the login",
        "password_input_css": "#password",
        "password_input_value": "the password",
        "control_text": "You have been logged successfully" 
    },
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD');

以延迟变量发送任务并按数秒后:

const taskId = await ac.sendAntiGateTask('http://antigate.com/logintest2fa.php',
    'Sign-in with 2FA and wait for control text',
    {
        "login_input_css": "#login",
        "login_input_value": "the login",
        "password_input_css": "#password",
        "password_input_value": "the password",
        "2fa_input_css": "#2facode",
        "2fa_input_value": "_WAIT_FOR_IT_",
        "control_text": "You have been logged successfully"
    });
await ac.delay(5000); //simulate a delay in 2FA retrieval
await ac.pushAntiGateVariable('2fa_input_value', '349001');
const solution = await ac.waitForResult(taskId);

console.log('solution:');
console.log(solution);

 

Funcaptcha / Arkoselabs 没有代理 :

//optional data blob:
ac.settings.funcaptchaDataBlob = 'blob value here is any, or leave it empty';
const token = await ac.solveFunCaptchaProxyless(
    'https://www.thewebsite.com/path',
    'site-key');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

Funcaptcha / Arkoselabs 通过代理:

//optional data blob:
ac.settings.funcaptchaDataBlob = 'blob value here is any, or leave it empty';
const token = await ac.solveFunCaptchaProxyOn(
    'https://www.thewebsite.com/path',
    'site-key', 
    'http',
    '1.2.3.4',
    3128,
    'proxy-login',
    'proxy-password',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116',
    '');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

Geest 版本 3 没有代理

参见教程 如何找到这些参数.

const token = await ac.solveGeeTestProxyless(
    'https://www.thewebsite.com/path',
    'gt key 32 bytes',
    'challenge value 32 bytes',
    'optional.api-domain.com');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

Geest 版本 4 没有代理

参见教程 如何找到这些参数.

const token = await ac.solveGeeTestV4Proxyless(
    'https://www.thewebsite.com/path',
    'captchaId key 32 bytes',
    'optional.api-domain.com',
    {
        'riskType': 'slide' //example
    });
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

要坐标的图像

const fs = require('fs');
const captcha = fs.readFileSync('captcha.png', { encoding: 'base64' });
const coordinates = await ac.solveImageToCoordinates(captcha, "Select all objects in specified order", "points");

报告上次解析的图像 captcha 不正确 :

await ac.reportIncorrectImageCaptcha();

 

普罗索波卡布查

const token = await ac.solveProsopoProxyless('http://DOMAIN.COM', 'WEBSITE_KEY');

 

以代理解决 Prosopo captcha :

const token = await ac.solveProsopoProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

没有代理的友好卡普查 :

const token = await ac.solveFriendlyCaptchaProxyless('http://DOMAIN.COM', 'WEBSITE_KEY');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

用代理解决友好卡普查 :

const token = await ac.solveFriendlyCaptchaProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

亚马逊WAF:

这里有两个选项:

  1. 当Captcha在机器人过滤页面上 你需要ws -was -toke cookie:

无代理 :

const token = await ac.solveAmazonProxyless('http://DOMAIN.COM', 
    'key_value_from_window.gokuProps_object',
    'iv_value_from_window.gokuProps_object',
    'context_value_from_window.gokuProps_object',
    'https://e9b10f157f38.9a96e8b4.us-gov-west-1.captcha.awswaf.com/e9b10f157f38/76cbcde1c834/2a564e323e7b/captcha.js', //optional
    'https://e9b10f157f38.9a96e8b4.us-gov-west-1.token.awswaf.com/e9b10f157f38/76cbcde1c834/2a564e323e7b/challenge.js'  //optional
); 
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

有代理服务器 :

const token = await ac.solveAmazonProxyOn('http://DOMAIN.COM',
    'key_value_from_window.gokuProps_object',
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    'iv_value_from_window.gokuProps_object',
    'context_value_from_window.gokuProps_object',
    'https://e9b10f157f38.9a96e8b4.us-gov-west-1.captcha.awswaf.com/e9b10f157f38/76cbcde1c834/2a564e323e7b/captcha.js', //optional
    'https://e9b10f157f38.9a96e8b4.us-gov-west-1.token.awswaf.com/e9b10f157f38/76cbcde1c834/2a564e323e7b/challenge.js'  //optional
);
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());
  1. 当 captcha 是独立部件时, 由用户动作触发 :

无代理 :

const token = await ac.solveAmazonWidgetProxyless('http://DOMAIN.COM', 
    'widget_api_key',     // get key from AwsWafCaptcha.renderCaptcha function
    'https://164cb210e333.edge.captcha-sdk.awswaf.com/164cb210e333/jsapi.js' // full path to jsapi.js integration script
); 
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

有代理服务器 :

const token = await ac.solveAmazonWidgetProxyOn('http://DOMAIN.COM',
    'widget_api_key',
    'https://164cb210e333.edge.captcha-sdk.awswaf.com/164cb210e333/jsapi.js', // full path to jsapi.js integration script
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD'
);
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

详细访问情况 反卡普查亚马逊 WAF 文档。 。 。 .


 

没有代理的 Altcha Captcha :

// with challenge URL:
const token = await ac.solveAltchaProxyless('http://DOMAIN.COM', '/some/challenge/url');

// with challenge JSON retrieved from challengeurl:
const token = await ac.solveAltchaProxyless('http://DOMAIN.COM', '', '{"algorithm":"SHA-256","challenge":"2a40f7ba3393f9513011179de41c7221f14e563856de2f647233a00accf9c28b","salt":"08d7f273d79df143355b9e5n","signature":"1de2bbf282420aef6ca0a84c38c85e2b1e40023d28bef72278d735555a8f47fb"}');
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

用代理解决 Altcha captcha :

// with challenge URL:
const token = await ac.solveAltchaProxyOn('http://DOMAIN.COM',
    '/some/challenge/url',
    null,
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD');

// with challenge JSON retrieved from challengeurl:
const token = await ac.solveAltchaProxyOn('http://DOMAIN.COM',
    '',
    '{"algorithm":"SHA-256","challenge":"2a40f7ba3393f9513011179de41c7221f14e563856de2f647233a00accf9c28b","salt":"08d7f273d79df143355b9e5n","signature":"1de2bbf282420aef6ca0a84c38c85e2b1e40023d28bef72278d735555a8f47fb"}',
    'http', //http, socks4, socks5
    'PROXY_IP',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD');

// in case you need it and it is available:
console.log('worker\'s user-agent:');
console.log(ac.getUserAgent());

 

方法调用类似的其它可用任务类型,参见源代码:

await ac.solveRecaptchaV2EnterpriseProxyOn( ... ); //Recaptcha V2 Enterprise with proxy
await ac.solveRecaptchaV3Enterprise( ... ); //Recaptcha V3 Enterprise
await ac.solveHCaptchaProxyOn( ... ); //hCaptcha with proxy
await ac.solveGeeTestProxyOn( ... ); //Solve Geetest with proxy
await ac.solveGeeTestV4ProxyOn( ... ); //Bypass Geetest V4 with proxy

版本与发布记录

@antiadmin/anticaptchaofficial 共发布 57 个版本,首次发布于 2020/09/19;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.0.57latest2026/09/241 个月前
1.0.562026/06/184 个月前
1.0.552025/10/181.1 年前
1.0.542025/10/011.1 年前
1.0.532025/07/051.3 年前
1.0.522025/05/211.5 年前

关于 @antiadmin/anticaptchaofficial 的常见问题

@antiadmin/anticaptchaofficial 是什么?

官方反Captcha.com npm 库

如何安装 @antiadmin/anticaptchaofficial?

在项目目录运行 npm install @antiadmin/anticaptchaofficial,或使用 pnpm add / yarn add / bun add。

@antiadmin/anticaptchaofficial 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/antiadmin__anticaptchaofficial 是否存在。

@antiadmin/anticaptchaofficial 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@antiadmin/anticaptchaofficial 可以商用吗?

@antiadmin/anticaptchaofficial 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@antiadmin/anticaptchaofficial 的下载量有多少?

根据 npm 官方下载统计,@antiadmin/anticaptchaofficial 在 2026/10/06 – 2026/11/04 这 30 天内被下载 71,309 次,日均约 2,377 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@antiadmin/anticaptchaofficial 还在维护吗?

最新版本 1.0.57 发布于 2026/09/24(1 个月前);至今共发布 57 个版本,其中过去 12 个月发布了 2 个;首次发布于 2020/09/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。