官方反Captcha.com npm模块
目录
- 介绍
- 安装
- 请求 API 密钥余额
- 与我们同在
- 图像 Captcha
- 重现 V2
- 重现 V3
- 盖普查
- 转弯
- 反大门任务
- Funcattcha (英语)
- (原始内容存档于2018-03-21) (英语). Geest v3
- 吉特尔特 v4
- 要坐标的图像
- 亚马逊WAF
- 阿尔察
官方反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:
这里有两个选项:
- 当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());
- 当 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