Voeg captcha-oplossingen toe aan uw automatiseringen met een paar regels code#
Los captcha's automatisch op met NextCAPTCHA#
Als u zich bezighoudt met browserautomatiseringstaken zoals webscraping, bent u waarschijnlijk websites tegengekomen die uw scripts onderbreken met een captcha-uitdaging.
Laat NEXTCAPTCHA uw captcha-oplossing afhandelen #
Als uw Puppeteer- of Toneelschrijver-scripts worden geblokkeerd door hardnekkige botdetectoren, wilt u dit eens bekijken. Met een kort fragment geeft het uw automatiseringen de mogelijkheid om elke captcha op te lossen.
Codefragment
const puppeteer = require ( 'puppeteer' );
const axios = require ( 'axios' );
const url = 'https://www.google.com/recaptcha/api2/demo' ;
async function main () {
const browser = await puppeteer. launch ({
headless: false
});
const page = await browser. newPage ();
await page. goto (url, {
waitUntil: 'networkidle0' ,
});
const sitekey = await page. $eval ( '[data-sitekey]' , el => el. getAttribute ( 'data-sitekey' ));
if (sitekey) {
const task = await createCaptchaTask (url, sitekey);
if (task) {
const result = await getTaskResult (task.taskId);
if ( ! result.errorId) {
await page. evaluate (( value ) => {
const textarea = document. querySelector ( '#g-recaptcha-response' );
textarea.value = value;
}, result.solution.gRecaptchaResponse);
await page. click ( '#recaptcha-demo-submit' );
// Continue...
}
}
} else {
console. log ( "find sitekey error" );
}
};
async function createCaptchaTask ( url , siteKey , isInvisible = false ) {
try {
const data = await axios. post ( 'https://api.nextcaptcha.com/createTask' , {
"clientKey" : "CLIENT_KEY" , // clientKey from NextCaptcha
"task" : {
type: "RecaptchaV2TaskProxyless" ,
websiteURL: url,
websiteKey: siteKey,
isInvisible
}
});
return data.data;
} catch (e) {
console. error ( 'createCaptchaTask error' , e);
return null ;
}
}
async function sleep ( time = 500 ) {
return new Promise (( resolve ) => {
setTimeout (() => {
resolve ();
}, time)
})
}
//
async function getTaskResult ( taskId , tryTimes = 60 ) {
try {
console. log ( 'tryTimes' , tryTimes)
const data = await axios. post ( 'https://api.nextcaptcha.com/getTaskResult' , {
"clientKey" : "CLIENT_KEY" , // clientKey from NextCaptcha
taskId
});
if (data.data.status === 'processing' && tryTimes >= 0 ) {
await sleep ();
return getTaskResult (taskId, tryTimes - 1 );
} else if (data.data.status === 'ready' ) {
return data.data;
} else {
if (tryTimes < 0 ) {
console. error ( 'getTaskResult out of time' );
} else {
console. error ( 'getTaskResult errorCode' , data.data.errorCode);
console. error ( 'getTaskResult errorDescription' , data.data.errorDescription);
return null ;
}
}
} catch (e) {
console. error ( 'createCaptchaTask error' , e.message);
return null ;
}
}
main ();
Uw scripts hoeven geen extra werk te doen, u hoeft alleen maar te wachten tot de NextCaptcha is opgelost met onze solver-API
ook hebben we captcha solver sdk voor Python, Go, C #. en we zullen meer programmeertalen integreren
captcha solver Python sdk: nextcaptcha-python
captcha solver Go sdk: nextcaptcha-go
captcha solver C# sdk: nextcaptcha-csharp
Neem contact met ons op
Email: [email protected]
Telegram: https://t.me/+wWJh5iON_I0xY2Vh
Website: https://nextcaptcha.com/