Sektor
вывод - дело не в айпи
Виталий
На турецком сайте
Виталий
если кликнуть руками все норм
Тоже пробовал руками нажимать, не работает)
Null
Не видел ещё ни разу чтобы кто-то показал что есть отличие реального клика от CDP.
Sektor
вот не так давно это все снова проверял
Null
А у тебя просто клик или весь путь курсора повторяет реальный?
Sektor
и без нее
Sektor
по всякому пробовал
Sektor
на моем компе даж без эмуляции движения все срабатывает
Sektor
чисто клик по нужному месту
Null
Потому что часто нужно именно цепочку focus/mouse on enter/click.
Sektor
мучал чатгпт но так и не смог выяснить что же блядям этим не нравится
Null
могу видео записать)
Нужен минималистичный пример кода, который покажет это. Если есть такая возможность.
Null
Видео мне ни о чём не скажет. Мне нужно повторить все шаги, чтобы я мог проверить в отладчике, есть ли какие-то отличия.
Null
у меня на сишарпе, подойдет?
Давай, потом перепишу, посмотрю.
Sektor
ну чуть попозже сделаю, там надо чуть подзаморочиться чтоб вытащить необходимые методы из библиотеки
Sektor
а куда отправить, лс можно?
Raso
DM for webscraping
OnlineProxy
а кто-нибудь знает как occlusion в хроме отключить? флаги пробовал но не помогают
Да, это старая беда — когда хром свёрнут, он «спит» и CDP-команды идут через плохо. Флаг --disable-backgrounding-occluded-windows раньше спасал, но сейчас часто не работает. Попробуй запускать хром с кучей флагов типа --disable-renderer-backgrounding --disable-occlusion, или просто держи окно развёрнутым где-то за пределами экрана. На Linux помогает запуск через Xvfb — тогда он всегда думает, что активен.
Aleksey
Привет всем. У меня есть browserless, работающий в докерк, и веб сайт с установленной bot-detection системой qrator, которая как-то палит автоматизацию даже с в headfull-режиме, Подключаюсь я так: await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:3000?token=xxx&headless=false' + "&stealth=true" + "&headless=false" + "&--disable-blink-features=AutomationControlled"+ "&--no-sandbox" + "&--disable-setuid-sandbox" + "&--ignore-certificate-errors" + "&--use-gl=desktop" + "&--headless" + "&--start-maximized" + "&--window-size=1920,1080" + "&--incognito" , defaultViewport: null, ignoreHTTPSErrors: true }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.105 Safari/537.36'); ... Сайт ведет себя так: еще до того, как я успеваю что-то сдклать (подвигать мышью или плскроллить о до этого не доходит) открывается с 401 ошибкой, после чего грузит скрипт qrator.js и выполняет POST-запрос в огромным пейлодом, в ответ отдает либо 200 ок (когда я проверяю в реальном браузере) и устанавливает куку, либо 403 (когда запускаю в виртуальном) Посоветуйте, на что еще стоит обратить внимание при попытке обойти такую защиту?
Sektor
так попробуй не на пупетире сделать
Sektor
Плейврайт, цдп, вебдрайвера всякие
Aleksey
Это чатик про пюпитир, тут эксперты по пюпитиру, про остальные технологии я могу спросить в других чатах. Плейрайт я тоже пробовал, челендж пройти не удается. Мб я в параметрах пюпитира упускаю какую-то деталь?
Raso
Привет всем. У меня есть browserless, работающий в докерк, и веб сайт с установленной bot-detection системой qrator, которая как-то палит автоматизацию даже с в headfull-режиме, Подключаюсь я так: await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:3000?token=xxx&headless=false' + "&stealth=true" + "&headless=false" + "&--disable-blink-features=AutomationControlled"+ "&--no-sandbox" + "&--disable-setuid-sandbox" + "&--ignore-certificate-errors" + "&--use-gl=desktop" + "&--headless" + "&--start-maximized" + "&--window-size=1920,1080" + "&--incognito" , defaultViewport: null, ignoreHTTPSErrors: true }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.105 Safari/537.36'); ... Сайт ведет себя так: еще до того, как я успеваю что-то сдклать (подвигать мышью или плскроллить о до этого не доходит) открывается с 401 ошибкой, после чего грузит скрипт qrator.js и выполняет POST-запрос в огромным пейлодом, в ответ отдает либо 200 ок (когда я проверяю в реальном браузере) и устанавливает куку, либо 403 (когда запускаю в виртуальном) Посоветуйте, на что еще стоит обратить внимание при попытке обойти такую защиту?
Do you have issue with code?
OnlineProxy
Привет всем. У меня есть browserless, работающий в докерк, и веб сайт с установленной bot-detection системой qrator, которая как-то палит автоматизацию даже с в headfull-режиме, Подключаюсь я так: await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:3000?token=xxx&headless=false' + "&stealth=true" + "&headless=false" + "&--disable-blink-features=AutomationControlled"+ "&--no-sandbox" + "&--disable-setuid-sandbox" + "&--ignore-certificate-errors" + "&--use-gl=desktop" + "&--headless" + "&--start-maximized" + "&--window-size=1920,1080" + "&--incognito" , defaultViewport: null, ignoreHTTPSErrors: true }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.105 Safari/537.36'); ... Сайт ведет себя так: еще до того, как я успеваю что-то сдклать (подвигать мышью или плскроллить о до этого не доходит) открывается с 401 ошибкой, после чего грузит скрипт qrator.js и выполняет POST-запрос в огромным пейлодом, в ответ отдает либо 200 ок (когда я проверяю в реальном браузере) и устанавливает куку, либо 403 (когда запускаю в виртуальном) Посоветуйте, на что еще стоит обратить внимание при попытке обойти такую защиту?
Привет! Отключите headless, но настройте браузер так, чтобы он вел себя как реальный. Попробуйте Stealth Plugin: Установите puppeteer-extra и puppeteer-extra-plugin-stealth для скрытия автоматизации: npm install puppeteer-extra puppeteer-extra-plugin-stealth Подключите плагин: const puppeteer = require('puppeteer-extra'); const stealthPlugin = require('puppeteer-extra-plugin-stealth'); puppeteer.use(stealthPlugin());
ZDev | Разработчик
Доброго времени суток. Подскажите пж, почему после exposeFunction она может быть null на странице? Точнее она есть но только с префиксом puppeter, хотя другие exposed-functions - есть с тем ключом, под которым зарегистрированы без префикса Регистрирую так: await Promise.all([ this.page.exposeFunction(EXPOSED_FUNCTIONS_KEYS.func1, (arg1, arg2) => {}), this.page.exposeFunction(EXPOSED_FUNCTIONS_KEYS.func2, (arg1, arg2) => {}), this.page.exposeFunction(EXPOSED_FUNCTIONS_KEYS.func3, (arg1, arg2) => {}), this.page.exposeFunction(EXPOSED_FUNCTIONS_KEYS.func4, (arg1, arg2) => {}), this.page.exposeFunction(EXPOSED_FUNCTIONS_KEYS.func5, (arg1, arg2) => {}), this.page.exposeFunction(EXPOSED_FUNCTIONS_KEYS.func6, (arg1, arg2) => {}), ]);
Тарас
Привет всем. У меня есть browserless, работающий в докерк, и веб сайт с установленной bot-detection системой qrator, которая как-то палит автоматизацию даже с в headfull-режиме, Подключаюсь я так: await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:3000?token=xxx&headless=false' + "&stealth=true" + "&headless=false" + "&--disable-blink-features=AutomationControlled"+ "&--no-sandbox" + "&--disable-setuid-sandbox" + "&--ignore-certificate-errors" + "&--use-gl=desktop" + "&--headless" + "&--start-maximized" + "&--window-size=1920,1080" + "&--incognito" , defaultViewport: null, ignoreHTTPSErrors: true }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.105 Safari/537.36'); ... Сайт ведет себя так: еще до того, как я успеваю что-то сдклать (подвигать мышью или плскроллить о до этого не доходит) открывается с 401 ошибкой, после чего грузит скрипт qrator.js и выполняет POST-запрос в огромным пейлодом, в ответ отдает либо 200 ок (когда я проверяю в реальном браузере) и устанавливает куку, либо 403 (когда запускаю в виртуальном) Посоветуйте, на что еще стоит обратить внимание при попытке обойти такую защиту?
Можно сайт? Можешь в ЛС
pancake ✨🥞
всем привет! я использую puppeteer с плагином stealth для автоматизации захода на гмит, но сейчас гугл стал банить бота, подскажите может кто с таким сталкивался, поможет ли переезд на playwright или другой браузер в таком случае?
pancake ✨🥞
И, кстати, Playwright использует тот же плагин stealth )
да, это видела что там тот же плагин используют
pancake ✨🥞
А перед переездом попробовать есть возможность? Эмуляция девайсов разных и тп
немного не поняла вопроса, уточните пожалуйста что попробовать имеется в виду
pancake ✨🥞
Не поможет. Все это дружно использует cdp который без ряда фиксов сам себя показывает.
а какие фиксы вы рекомендуете? мы тут уже просто весь интернет перевернули и все перепробовали
ISergey
Это все комплексно. И нифига не просто . Можно детектить то что - активен runtime (гуглится cdp runtime detect ) - можно к примеру по таймингу console.log обнаружить девтулс/cdp (одно и тоже ) (раньше такой антибот как kasada это делал) Далее зависит в принципе как и какие апи используются (какой-то левый query или прямой js клик себя покажет ) Хреновые прокси как красный флаг могут быть. Комп на котором это все работает дает один и тот же фингерпринт . А так нужно изучать как они могут это детектить . (Тот сайт с которым идет работа ) Или искать готовые решение но обычно ценик 10к+
ISergey
я тут проверяю - весьма годно показывает https://www.browserscan.net/bot-detection
Я просто пытаюсь на псн (сайт PlayStation ) залогиниться )) там целый огород антиботов )
Aleksey
а какие фиксы вы рекомендуете? мы тут уже просто весь интернет перевернули и все перепробовали
У меня похожая проблема была В итоге я взял реальный хром, поставил виртуальный дисплей и запустил на сервере browserless, который натравил на этот реальный хром
pancake ✨🥞
Привет всем. У меня есть browserless, работающий в докерк, и веб сайт с установленной bot-detection системой qrator, которая как-то палит автоматизацию даже с в headfull-режиме, Подключаюсь я так: await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:3000?token=xxx&headless=false' + "&stealth=true" + "&headless=false" + "&--disable-blink-features=AutomationControlled"+ "&--no-sandbox" + "&--disable-setuid-sandbox" + "&--ignore-certificate-errors" + "&--use-gl=desktop" + "&--headless" + "&--start-maximized" + "&--window-size=1920,1080" + "&--incognito" , defaultViewport: null, ignoreHTTPSErrors: true }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.105 Safari/537.36'); ... Сайт ведет себя так: еще до того, как я успеваю что-то сдклать (подвигать мышью или плскроллить о до этого не доходит) открывается с 401 ошибкой, после чего грузит скрипт qrator.js и выполняет POST-запрос в огромным пейлодом, в ответ отдает либо 200 ок (когда я проверяю в реальном браузере) и устанавливает куку, либо 403 (когда запускаю в виртуальном) Посоветуйте, на что еще стоит обратить внимание при попытке обойти такую защиту?
вот тут, уже получается справились?
ISergey
Это попробуйте https://github.com/rebrowser/rebrowser-patches Не тестил .
ISergey
Может хватит .
Aleksey
а вы же выше писали что даже browserless не помогает?
Это в докере не работало , а с дисплеем +headless =false на убунте без докера все работает
ISergey
Runtime detect я правильно понял срабатывает если только runtime.enable?
Не только . Консоль себя палит . В обычном режиме console.log создает 0 ефекта. Но как-то только открыли дев тулс или подключились к браузеру то оно начинает работать и давать признаки о себе. Конечно можно это проксировать с js. Но сам факт проксирования сложно скрить.
ISergey
Тайминги точно и брейкпоинты видел в антиботах. ‘’’ let start = performance.now(); setTimeout(() => { let duration = performance.now() - start; if (duration > 100) { // должно быть ~0-5мс console.warn('DevTools может быть открыт (таймер задержан)'); } }, 0);’’’
ISergey
let devtoolsOpen = false; const element = new Image(); Object.defineProperty(element, 'id', { get: function () { devtoolsOpen = true; throw new Error('DevTools detected'); } }); console.log('%c', element); setTimeout(() => { if (devtoolsOpen) { console.warn('DevToos'); } }, 100);
ISergey
Мини сайт сделай который будет что-то писать на странице .
Sektor
А, понял, спс
Null
Не поможет. Все это дружно использует cdp который без ряда фиксов сам себя показывает.
Сам CDP себя никак не показывает. Это либы, которые его используют палятся. На том же https://www.browserscan.net/bot-detection это видно. Если подключаться через либы, то он определяет CDP, но если прицепиться чистым WS-клиентом и самому посылать команды, то он не видит ничего.
Null
Это в докере не работало , а с дисплеем +headless =false на убунте без докера все работает
В докере тоже можно поднять виртуальный дисплей и запускать браузер в полноценном режиме.
Null
Там внутри такой же linux, отличий никаких быть не должно.
hatsker
скам на расходниках?
pancake ✨🥞
добрый день! проверяли на разных сайтах проверках ботов?
Stas
Ищу человека который может помочь (не бесплатно) с разгадванием скрытой капчи на сайте от google Нужно: — Написать код или найти библиотеку которая будет работать с puppeteer (nodejs) использовать сервис rucaptcha.com или тому подобный, цель проходить тест на сайте https://antcpt.com/rus/information/demo-form/recaptcha-3-test-score.html и получать скор в районе 0.9 — Объяснить как работает скрытая капча и в каких случаях и как часто нужно разгадывать на целевой странице
Anna
Как раз недавно писала статью про этот вид скама 🙂
это клёво, разве нет?
Привет, headless: 'new' в новых версиях больше не поддерживается?
I I
Здраствуйте, прошел недавно обучение по теме ИИ, у меня остались полезные материалы (видео, конспекты, инструменты). Могу скинуть просто так может кому-то зайдёт. Если интересно дайте знать, отправлю
Raso
Hi dm for webscraping projects. I’m expert
1
На домашнем компьютере при запуске Puppeteer монитор не уходит в спящий режим. Добавил такие аргументы '--disable-animations', '--disable-background-timer-throttling', '--disable-renderer-backgrounding', не помогает, может ещё что-то добавить нужно, чтобы в спящий режим переходил монитор?