Sử dụng plugin để mô phỏng lưu lượng truy cập của con người
import NextCaptcha from 'nextcaptcha-ts';
import puppeteer from 'puppeteer';
Sau đó, mở phiên bản Chrome và điều hướng đến trang demo.
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',
});
Bước tiếp theo là xác định vị trí khóa trang web CAPTCHA và URL trang web tới
Ứng dụng khách NextCaptcha, trả về giải pháp văn bản. Lưu nó trong biến 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)
})
}
Nó sẽ hiển thị cho bạn thấy WebDrive hiện diện (không thành công)
Truy cập bị từ chối! sannysoft đã phát hiện lưu lượng truy cập không phải của con người và đã chặn bot của chúng tôi. Đây là nơi mà puppeteer-extra-plugin-stealth, Một plugin dành cho puppeteer-extra và playwright-extra để ngăn chặn sự phát hiện, ra tay giải cứu. Nó sẽ làm cho lưu lượng truy cập của bạn trông thủ công hơn và tránh bị chặn, tức là bằng CAPTCHA.
Để bắt đầu, hãy cài đặt gói Stealth
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())
sau đó sử dụng người múa rối như bình thường
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)
})
}
Hãy nhìn vào đầu ra:
Thành công! Điều này giúp vượt qua CAPTCHA với Puppeteer.