Коллеги, доброго времени суток, может кто сталкивался с такой задачей, пишу бота, логика проста, зашел на страницу, авторизовался в ЛК и пошел гулять по сайту. Использую NODEJS + PUPPETEER. По сути все просто и не возникает проблем серфинга, но есть момент.
Я конечно использую прокси, но не могу защититься от webrtc, иными словами на
тут я вижу реальный IP. Задача его изменить на любой из списка. Кто то может сталкивался с задачей, голову сломал. буду благодарен любым советам, только по делу конечно.
Вот кусок года, собственно:
const puppeteer = require('puppeteer');
async function run() {
// const domain = `https://4it.me/`;
const domain = `https://browserleaks.com/webrtc`;
const pageOptions = { waitUntil: ['networkidle0','domcontentloaded'] };
const userAgent = `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134`;
const rulles = [
'geolocation',
'notifications',
'camera',
'microphone',
'background-sync'
];
const proxyUrl = `http://2.2.2.2:3000`;
const username = 'someusername';
const password = 'someusernamepassword';
let options = {
ignoreHTTPSErrors: true,
headless: false,
args: [
`--no-sandbox`,
'--start-maximized',
`--disable-setuid-sandbox`,
'--disable-infobars',
`--proxy-server=${proxyUrl}`,
`--host-resolver-rules=MAP ${domain} 2.2.2.2`,
],
defaultViewport: {
width: 1871,
height: 949
}
};
try {
const browser = await puppeteer.launch(options);
const page = await browser.newPage();
const context = browser.defaultBrowserContext();
await context.overridePermissions(domain, rulles);
await page.setUserAgent(userAgent);
await page.authenticate({ username, password });
await page.goto(domain);
} catch (e) {
console.log(e);
}
}
run();
По коду я дума не возникнет вопросов.