I I
Здравствуйте! Недавно прошла обучение по теме ИИ осталось много полезных материалов: видео, конспекты, инструменты. Могу поделиться просто так, вдруг кому-то пригодится. Если интересно, дайте знать, отправлю 😊
Андрей
Null
А может есть где-то примеры, чтобы велосипед не изобретать:)
Суть как раз в том чтобы понять как работает протокол и начать писать свой велосипед, тогда ты будешь знать где какие утечки, какие техники опознаются антибот-системами и т.п.
А иначе придётся постоянно надеяться что очередной апдейт существующих либ не сломает что-нибудь. А большинство из них созданы для тестирования, они не заинтересованы в какой-либо маскировке.
Null
https://github.com/aslushnikov/getting-started-with-cdp
Null
https://github.com/ChromeDevTools/awesome-chrome-devtools
Null
Возможно это поможет, множество проектов использует CDP, можно у них смотреть подходы.
Sektor
А какие там подходы? Цепляешься к вебсокету, шлешь команды, ловишь ответы
Raso
hello who need to bypass cloudflare ?
Raso
dm
Андрей
OnlineProxy
А playwright , какой способ использует?
Тот же CDP, но с кучей доработок. Если включен slowmo или stealth - клик будет максимально человекообразным:
Сам клик - это три CDP-события mouseMoved → mousePressed → mouseReleased
Sektor
Sektor
у меня идентичный скрипт был, на домашнем ноуте все ок проходило клаудфлейр капчу
Sektor
а на серверах нет
Андрей
Андрей
но к сожалению иногда палится этот клик
driver.execute_cdp_cmd("Input.dispatchMouseEvent", {"type":"mousePressed", "x":x, "y":y, "button":"left", "clickCount":1})
driver.execute_cdp_cmd("Input.dispatchMouseEvent", {"type":"mouseReleased", "x":x, "y":y, "button":"left", "clickCount":1})
driver.execute_cdp_cmd("Input.dispatchMouseEvent", {"type":"mouseMoved", "x":x, "y":y, "button":"left", "clickCount":1})
Андрей
driver.execute_cdp_cmd("Input.dispatchMouseEvent", {"type":"mousePressed", "x":x, "y":y, "button":"left", "clickCount":1})
driver.execute_cdp_cmd("Input.dispatchMouseEvent", {"type":"mouseReleased", "x":x, "y":y, "button":"left", "clickCount":1})
driver.execute_cdp_cmd("Input.dispatchMouseEvent", {"type":"mouseMoved", "x":x, "y":y, "button":"left", "clickCount":1})
Вот это должно пройти для клоуда
Sektor
Спасибо
Sektor
Знакомы?
Raso
hi please dm for puppeteer projects. im expert
Kila
I I
Здравствуйте! Недавно прошла обучение по теме ИИ осталось много полезных материалов: видео, конспекты, инструменты. Могу поделиться просто так, вдруг кому-то пригодится. Если интересно, дайте знать, отправлю 😊
Raso
Hi everyone do you need bypass cloudflare? Please dm im expert. join my server: https://t.me/+-ymZ5mvsp_EwYTA0
I I
Здравствуйте! Недавно прошла обучение по теме ИИ осталось много полезных материалов: видео, конспекты, инструменты. Могу поделиться просто так, вдруг кому-то пригодится. Если интересно, дайте знать, отправлю 😊
Андрей
Phil
Требуется специалист по автоматизации браузера (Playwright/Puppeteer, антидетект) для массовой эмуляции пользовательских действий
Описание задачи:
Ищем опытного разработчика для создания и поддержки системы массовой эмуляции пользовательских действий на веб-платформе.
Требуется реализовать автоматизацию сценариев с помощью Playwright или Puppeteer (в связке с puppeteer-cluster или аналогом) и интеграцией с антидетект-браузером (например, Nstbrowser).
Требования:
• Опыт работы с Playwright или Puppeteer (Node.js/Python)
• Навыки кластеризации и масштабирования задач (puppeteer-cluster, playwright-cluster, Selenium Grid и пр.)
• Знание принципов обхода антибот-систем, опыт работы с антидетект-браузерами
• Умение работать с прокси, управлять браузерными профилями
• Опыт написания устойчивых и масштабируемых скриптов автоматизации
Задачи:
• Настроить инфраструктуру для выполнения до 500 000 действий в сутки (каждое до 2 минут)
• Реализовать сценарии: поиск, переходы, клики, скроллы, заполнение форм, просмотр карточек, взаимодействие с элементами интерфейса и т.д.
• Интегрировать антидетект-браузер (Nstbrowser или аналог)
• Организовать логирование, мониторинг и обработку ошибок
• Подготовить инструкции по развертыванию и эксплуатации
Дополнительно:
• Желательно наличие реализованных похожих проектов
• Готовность к долгосрочному сотрудничеству
Ожидаемая форма работы:
Удалённо, по договорённости.
〘 Желтушка Ворон 〙
Ребят, добрый день. Что обычно смотрит cloudflare? User agent, proxy, и так далее я не подключал, попробовал просто открыть сессию браузера через puppeteer, зашёл на сайт, а там бесконечная капча от клары (cloudflare). Чем её решаете?
ZDev | Разработчик
Ребят, добрый день. Что обычно смотрит cloudflare? User agent, proxy, и так далее я не подключал, попробовал просто открыть сессию браузера через puppeteer, зашёл на сайт, а там бесконечная капча от клары (cloudflare). Чем её решаете?
Можно сказать на всё сразу, все данные, что браузер шлет.
IP, заголовки, данные запроса (Query, Post), и т.д
ZDev | Разработчик
Возможно, но не факт, что ещё и TLS Fingerprint тоже
Алексей
Привет
Алексей
Подскажите по puppeteer пож
Raso
〘 Желтушка Ворон 〙
Ребят, какие методы нужно вызывать, чтобы срабатывал скрипт перед открытием новой страницы, да и впринципе этот скрипт всегда вызывался, (обновление страницы, перенаправление). Есть у меня js, который подмену webGL делает, так вот я привязал page.EvaluteFunctionOnNewDocumentAsync(my_script, vendor, renderer); // Не всегда работает.
Можете подсказать что нужно ещё делать или какие обработчики существуют? Если что puppeteer-extra меня не устраивает, т.к. пишу на новых версиях puppeteer c#
Sektor
Ребят, какие методы нужно вызывать, чтобы срабатывал скрипт перед открытием новой страницы, да и впринципе этот скрипт всегда вызывался, (обновление страницы, перенаправление). Есть у меня js, который подмену webGL делает, так вот я привязал page.EvaluteFunctionOnNewDocumentAsync(my_script, vendor, renderer); // Не всегда работает.
Можете подсказать что нужно ещё делать или какие обработчики существуют? Если что puppeteer-extra меня не устраивает, т.к. пишу на новых версиях puppeteer c#
Пупетиршарп страшное дело
Sektor
Баги всякие как по мне
〘 Желтушка Ворон 〙
Я не могу на node.js писать, к сожалению. Баги там просто адекватные бывают, например, скрипт работает, а я закрою самостоятельно браузер, если catch (PuppeteerException) отсутствует, то программа выпадает, ну, это нормально.
Я привязал
browser.TargetCreated += async (_, e) => {
await this.webGL(await e.Target.AsyncPage());
page.FrameNavigation += async (_, e) => {
await this.webGL(page);
};
};
// Точно также, но для контекста браузера
Null
Я не могу на node.js писать, к сожалению. Баги там просто адекватные бывают, например, скрипт работает, а я закрою самостоятельно браузер, если catch (PuppeteerException) отсутствует, то программа выпадает, ну, это нормально.
Я привязал
browser.TargetCreated += async (_, e) => {
await this.webGL(await e.Target.AsyncPage());
page.FrameNavigation += async (_, e) => {
await this.webGL(page);
};
};
// Точно также, но для контекста браузера
Так проблема, получается, в некорректной обработке эксепшенов. Или забыл что-то в try/catch обернуть, либо async где-то пропустил.
User
Подскажите, как нажать кнопку ОК на всплывающем сообщении браузера? Стандартными методами не работает, пробовал через
page.on('dialog', async dialog => {
await dialog.accept();
})
а также через
const okButton = await page.$x('//button[contains(., "ОК") or contains(., "Понятно")]');
if(okButton.length > 0) await okButton[0].click();
Алексей
ZDev | Разработчик
User
Null
Алексей
Это ты запускал из php ноду?)
Нет. Ноду локально на порту поднял и по гет урл передаю и ответ хтмл. Пару строчек кода. Правда отладить это почти неделя заняла 😅. А так еще и нода подгружает браузер и просто урлы отрабатывает за одну секунду. А вот каждый раз браузер подгружать и парсить и закрывать и так по кругу это 25 35 сек примерно. Но я нашел решение. Могу в паблик скинуть код если нужно. Слава гпт нейронке и поиску...
Алексей
Да, нода пол свои задачи круче пхп. Но под пхп больше решений. Хорошо совмещать.
Алексей
ZDev | Разработчик
Алексей
Я свои задачи уже решил по коду, парсю в БД, комп гудит... 😎
Алексей
Сам с нуля под ноду через чат гпб нашел ошибки м решения. Тема работает. Но не для долго правда.
Алексей
Без чата это и дольше бывало и не факт что решалось. Как-то так.
ZDev | Разработчик
ZDev | Разработчик
QWEN:
В Puppeteer и его "наследнике" Puppeteer Core / Playwright , напрямую нажимать на элементы интерфейса браузера (UI) — такие как кнопки закладок, адресная строка, кнопка "Назад", меню Chrome и т.п. — нельзя стандартными средствами.
Причина в том, что Puppeteer работает через DevTools Protocol , который предоставляет доступ к внутренностям веб-страницы и отдельных контекстов выполнения , но не к UI-элементам самого браузера .
User
ZDev | Разработчик
User
ZDev | Разработчик
User
Сильно мешает?
После ввода пароля дальше не пройти пока кнопку ОК не нажмёшь. Нашёл такое, сейчас опробываю разные варианты
https://stackoverflow.com/questions/79215348/puppeteer-how-to-disable-change-your-password-password-leak-detection-popup
User
ZDev | Разработчик
〘 Желтушка Ворон 〙
Ребят, как боритесь с этим?
Node is either not clickable or not an Element
Я пробовал сам в DevTools использовать метод click, то работает, то нет.
a = document.querySelector(...);
if (!(a == null || a == undefined))
a.click(); // Всегда находит объект
Что посоветуете?
ZDev | Разработчик
〘 Желтушка Ворон 〙
ZDev | Разработчик
ZDev | Разработчик
https://github.com/puppeteer/puppeteer/issues/8627#issuecomment-1175096938
ZDev | Разработчик
Можно пробовать ждать видимости элемента: await page.waitForSelector(selector, { visible: true });
〘 Желтушка Ворон 〙
Кстати, как работает эта видимость?
Я вот делал такое, но никогда не дожидается. Хотя элемент я сам глазами вижу, и мышкой тыкнуть могу, в этом плане хорошо.
У меня есть массив div'ов, вот последние 3-4 могут быть такими корявыми, что-ли.
Null
〘 Желтушка Ворон 〙
Точно не во IFrame, даже в DevTools внутри 'top' фрейма (главного) искал, находится, но не кликается