Gebruik een plug-in om menselijk verkeer te simuleren
import NextCaptcha from 'nextcaptcha-ts';
import puppeteer from 'puppeteer';
Open vervolgens een Chrome-instantie en navigeer naar de demopagina.
const url = "https://www.google.com/recaptcha/api2/demo"
const browser = await puppeteer.launch({});
const page = await browser.newPage();
await page.goto(url, {
waitUntil: 'networkidle0',
});
De volgende stap is het lokaliseren van de CAPTCHA websiteKey en websiteURL naar het
NextCaptcha-client, die de tekstoplossing retourneert. Sla het op in de variabele data.solution.gRecaptchaResponse.
const data = await client.recaptchaV2({websiteKey, websiteURL: url});
console.log('gRecaptchaResponse: ', data.solution.gRecaptchaResponse);
console.log('submitting form .. ');
await Promise.all([
page.click('#recaptcha-demo-submit'),
page.waitForNavigation({ waitUntil: "networkidle0" })
]);
console.log('making a screenshot ...');
await page.screenshot({ path: 'screenshot.png' });
console.log('closing browser .. ');
await browser.close();
import NextCaptcha from 'nextcaptcha-ts';
import puppeteer from 'puppeteer';
const url = "https://bot.sannysoft.com"
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage();
await page.goto(url, {
waitUntil: 'networkidle0',
});
console.log('making a screenshot ...');
await page.screenshot({ path: 'screenshot.png' });
await sleep(30000)
console.log('closing browser .. ');
await browser.close();
function sleep(time = 1000) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(true)
}, time)
})
}
Er wordt weergegeven dat u WebDrive aanwezig bent (mislukt)
Toegang geweigerd! sannysoft heeft niet-menselijk verkeer gedetecteerd en onze bot geblokkeerd. Dit is waar de poppenspeler-extra-plugin-stealth, een plug-in voor poppenspeler-extra en toneelschrijver-extra om detectie te voorkomen, te hulp komt. Het zorgt ervoor dat uw verkeer er meer handmatig uitziet en voorkomt dat het wordt geblokkeerd, d.w.z. met CAPTCHA's.
Installeer om te beginnen het Stealth-pakket
import puppeteer from 'puppeteer-extra';
import puppeteer-extra-plugin-stealth from 'puppeteer-extra-plugin-stealth';
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
gebruik dan de poppenspeler zoals normaal
const url = "https://bot.sannysoft.com"
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage();
await page.goto(url, {
waitUntil: 'networkidle0',
});
console.log('making a screenshot ...');
await page.screenshot({ path: 'screenshot.png' });
await sleep(30000)
console.log('closing browser .. ');
await browser.close();
function sleep(time = 1000) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(true)
}, time)
})
}
Laten we naar de uitvoer kijken:
Succes! Dit helpt CAPTCHA te omzeilen met Puppeteer.