1
При динамическом изменении страницы, как себя ведёт puppeteer, видит эти изменения или нет? Не могу отловить текст сообщения, который появляется динамически на странице. Локально сохраняю страницу с этим сообщением, всё хорошо отрабатывает, а как вживую, то никак.
Pavel
мне помог waitFor....
Pavel
и далее нужный селектор или xpath
In77
Bogdan
Bogdan
А так да такие функции лучше чем waitFor работают с ними можно больше сценариев проработать
Bogdan
Например когда я не знаю в какой момент появится определённый инпут можно сделать рекурсию типо waitAndType
И в самом начале основного пайпа запустить ее без await
Получается когда инпут обнаружится, то он заполнится параллельно, а пайп без прерываний будет исполнен.
1
🅰️nimeCoder
А в чем проблема использовать waitForSelector?
🅰️nimeCoder
Таймауты всегда можно вставить какие нужно
1
1
Стоит обработчик нажатия кнопки ОК на всплывающем диалоговом окне, если окно не появилось, то почему-то puppeteer перестаёт видеть страницу, что делать? Попробовал обработчик положить в try, не помогает.
page.on('dialog', async dialog => {
await dialog.accept();
});
Pavel
как можно держать несколько вкладок открытыми и отслеживать изменения в них? есть ли способ помимо https://github.com/thomasdondorf/puppeteer-cluster ?
Bogdan
Pavel
и таких страничек нужно держать открытыми 13 шт
Bogdan
Понятно.
Ну пул воркеров нужно сделать. Я писал недавно кустарный, но он для браузеров. В принципе можно легко под страницы переписать. Попозже покажу
Bogdan
Только если на одной странице что-то упадёт то все упадёт
Bogdan
Точнее если браузер
Bogdan
Упадёт то все упадут страницы
Pavel
ну оно понятно, ок
Pavel
а как можно все воркеры в ноде посмотреть?
Bogdan
а как можно все воркеры в ноде посмотреть?
я как-то воркеров базовых в ноде не понял. А пула нормального тоже не нашел, все не так работает, либо есть одна функция но нету другой.
вообщем я как выше написал нормально работает
Bogdan
тебе только нужно браузер на Page заменить, а сам браузер передать уже наверное как папараметр в sendJob2Worker(browser)
Британец
Господа привет, я новичок в автоматизации, есть такой вопрос.
Есть ли смысл использовать антидетект браузеры с puppeteer типо ads power или dolphin anty , они настраивают отпечатки браузера к каждому профилю. Можно ли реализовать это на голом puppeteer?
Британец
ISergey
https://github.com/berstend/puppeteer-extra/tree/master/packages%2Fpuppeteer-extra-plugin-stealth
ISergey
Решение немного устарело, но есть над чем работать.
Alex*
Всем привет.
Alex*
Alex*
Здесь у нас Shadow DOM.
row получаю:
const { QueryHandler } = require("query-selector-shadow-dom/plugins/puppeteer");
await puppeteer.registerCustomQueryHandler('shadow', QueryHandler);
const selectorRows = "shadow/#_root #_grid .row"
const rows = await page.$$(selectorRows);
console.log(rows.length);
Вопрос - как получить в строке shadow элементы, вернее сказать shadow значения?
Британец
Bogdan
Bogdan
Bogdan
Он просто не спалит что ты не бот возможно
Британец
Он просто не спалит что ты не бот возможно
Ну кароче, он не спалит что я безголовый хром но всё ровно будет видеть что браузер один и тот же? А можно ли как то редактировать fingerprint? Или лучше просто платить за антидетект браузер?
Bogdan
Bogdan
Bogdan
ну это если регистрация на сайте нужна))
Bogdan
если без регистарции что-то покравлить тебе нужно, то там стелса должно хватить. Вообще чекни в начале со стелс плагином, если тебя палят и банят, то нужно менять отпечаток.
Британец
Хорошо спасибо) очень рад что нашёл этот чат)
🅰️nimeCoder
🅰️nimeCoder
поверх можно лепить костыли меняющие общий фингерпринт
🅰️nimeCoder
подход к сайтам обычно индивидуальный, нужно разбирать дебагером и смотреть что он использует
Slava
Bogdan
🅰️nimeCoder
есть пример?
Разколупай плагины которые меняют фингерпринты, там есть примеры
🅰️nimeCoder
Правда лучше заранее попробовать разные самому, на конкретном сайте, а потом думать чо делатб
Tofa
Здравствуйте, как дождатьтся пока h тег с классом example появится на странице?
<h class="example">
🅰️nimeCoder
Появится буквально или станет видимый?
Tofa
Tofa
но реализация с видимым тоже интересна
🅰️nimeCoder
https://pptr.dev/#?product=Puppeteer&version=v14.3.0&show=api-pagewaitforselectorselector-options
🅰️nimeCoder
await page.waitForSelector('h .example')
🅰️nimeCoder
await page.waitForSelector('h .example', { visible: true })
Tofa
спасибо большое, сейчас попробую
GamiD
А в puppeteer есть двигать мышь над элементом?
Tofa
🅰️nimeCoder
GamiD
🅰️nimeCoder
Ну там есть методы для мышки, по кординатам
Bogdan
Есть ghost cursor ещё либа
🅰️nimeCoder
🅰️nimeCoder
🅰️nimeCoder
А вообще в интернете вагон и тележка примеров))
Tofa
Tofa
как дождаться клика на кнопку и окончание загрузки страницы?
Bogdan
Но если ты его не видишь это не значит что его нету
GamiD
GamiD
Tofa
как сделать триггер из девтулса на ноду?
Tofa
ну, типа вызывать функцию в девтулсе хромиума и попыт начинает что-то делать