MCS
hello is there an english group for puppeteer?
DeniskaAb
Hello. Please, how to select this react selector for onchange for live reload ? https://pastebin.com/Y2NUMV6g
German
Здравствуйте Друзья, У меня есть один сайт, с которого я должен в день по несколько раз определённую информацию получать. Сейчас этот сайт активировал cloudflare и включил проверку JS challenge. Сейчас я вместо контента сайта, получаю заглушку Cloudflare, где написано что надо подождать 5 секунд. Скажите пожалуйста, как можно обойти эту проверку и получить контент сайта? Что нужно сделать, сохранить куки и повторно обратится к сайту? Буду признателен за любую информацию.
Andrew
Всем привет, пытаюсь написать с помощью puppeteer брутфорс, цель тестирую капчу при брутфорсе столкнулся с проблемой отслеживания что пароль подошел, когда он подходит, происходит процесс авторизации, происходит автоматический переход с auth.xxxx.xx на app.xxxx.xx выглядит так
Andrew
если происходит авторизации то ошибка (node:7037) UnhandledPromiseRejectionWarning: TimeoutError: waiting for XPath //div[@class='alert alert-danger'] failed: timeout 30000ms exceeded так как в момент await page.waitForXPath("//div[@class='alert alert-danger']", {visible: true}) он просто не дожидается и по таймауту падает
Andrew
я возможно не особо опытный в этих делах, основная цель проверить что гугл капча вылезет если идет подбор пароля, а не просто ввели пару раз неправильно не уверен что через api можно визуально отследить появилась ли капча и все ли работает если её заполнить
Andrew
спасибо, изучу
Anonymous
I need help I trying to do Newsletter with cheerio but I got stuck with saving data and sending a message when there is a new one.
🐽 Alex
Просто бывает когда ответ на рекапчу генерится самой рекапчой на доверии Гугла к юзеру
🐽 Alex
Т.е. если уже до этого проходил рекапчу, то есть вероятность что на другом сайте вводить ее не потребуется
Алекс
ребят вопрос, написал простой скрипт парсинга работает, но только если headless: false стоит только включить, ругается на TimeoutError: waiting for selector `a.pagination-widget__page-link_next` failed: timeout 30000ms exceeded в скрипте есть await page.waitForSelector('a.pagination-widget__page-link_next') понятно что на таймаут ругается, но почему в headless режиме не работает тогда?
Jay
Anyone tried with amazon.com site ?
Алекс
TimeoutError: waiting for selector `a.pagination-widget__page-link_next` failed: timeout 30000ms exceeded at new WaitTask (D:\WebProjects\test\bot-parser\node_modules\puppeteer\lib\cjs\puppeteer\common\DOMWorld.js:528:34) at DOMWorld.waitForSelectorInPage (D:\WebProjects\test\bot-parser\node_modules\puppeteer\lib\cjs\puppeteer\common\DOMWorld.js:432:26) at Object.internalHandler.waitFor (D:\WebProjects\test\bot-parser\node_modules\puppeteer\lib\cjs\puppeteer\common\QueryHandler.js:31:77) at DOMWorld.waitForSelector (D:\WebProjects\test\bot-parser\node_modules\puppeteer\lib\cjs\puppeteer\common\DOMWorld.js:323:29) at Frame.waitForSelector (D:\WebProjects\test\bot-parser\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:942:51) at Page.waitForSelector (D:\WebProjects\test\bot-parser\node_modules\puppeteer\lib\cjs\puppeteer\common\Page.js:2359:33) at D:\WebProjects\test\bot-parser\app.js:31:18 at runNextTicks (internal/process/task_queues.js:62:5) at listOnTimeout (internal/timers.js:523:9) at processTimers (internal/timers.js:497:7)
Sasha
Зайди в хеадлес и сохрани страницу в файл
Alhimik
вообще ниче не выдается, пусто
Ну вот и ответ, сервер что-то другое отдаёт. Ты хотя бы юзерагент выставляешь нужный?
Алекс
Ну вот и ответ, сервер что-то другое отдаёт. Ты хотя бы юзерагент выставляешь нужный?
нет, при headless: false работает же без установки юзеагента я думал дефолтный устанавливается
Alhimik
нет, при headless: false работает же без установки юзеагента я думал дефолтный устанавливается
Только в юзерагент ставится заголовок со строкой Headless. Возможно это проверяется на сервере и тебе выдаётся другой ответ.
Alhimik
это как? пример можно?
Возьми у body innerHTML и сохрани в файл: const innerHTML = await page.evaluate(() => document.body.innerHTML); Но скорей всего тебе просто нужно установить useragent.
Ryskin Artem
Добрый день. Такой вопрос: в функции launch() есть параметр: args. Реально ли как-то передать подобный параметр при connect()?
Alhimik
Добрый день. Такой вопрос: в функции launch() есть параметр: args. Реально ли как-то передать подобный параметр при connect()?
Думаю нельзя. Потому что браузер уже запущен, на лету параметры скорей всего не поменять.
Ryskin Artem
Понял. Чего-то так и подумал. Ну ладно, спасибо большое :)
1
Подскажите, как найти все ссылки в селекторе и запихнуть в массив? <div id="idSlot-1" class="clsSlot"> <a href="#sel1"></a> <a href="#sel2"></a> <a href="#sel3"></a> </div> наверное, должно быть, как-то так Array.from(document.getElementById('idSlot-1'), a => a.href)
Sasha
xpath helper
Jay
Yes
1
https://devdocs.io/puppeteer/index#pageselector-1
Что-то не пойму, как через $$eval сделать. Через evaluate() так получается: let links = await page.evaluate(() => { let allLinks = document.getElementById('idSlot-1').getElementsByTagName('a'); let result = []; for (let i=0; i<allLinks.length; i++) { result.push(allLinks[i].href) } return result; });
Назар
$$("#idSlot-1 a") вернет вот те 3 ссылки
1
Как отловить завершение загрузки страницы, крутится по центру экрана. Пробовал это await page.waitForNetworkIdle(); и это await page.waitForNavigation({ waitUntil: ['networkidle2','load']}); работают через раз, даже, чаще не работают, чем работают.
Alhimik
Через page.on("response").
🦋noteee
@shad0w64 npm i puppeteer
🦋noteee
Не подскажешь, пожалуйста, как можно исправить?
🦋noteee
В интернете информация касаемо этого, добавления в переменную среды окружения параметра, для пропуска установки chrome. Но ведь это не решение, а лишь скрытие ошибки
Alhimik
@shad0w64 npm i puppeteer
А через браузер эта ссылка открывается?
🦋noteee
А через браузер эта ссылка открывается?
С другой OS и IP скачивание начинается сразу же
Alhimik
Вообще странно что там ошибка с кодом 403. Доступ почему-то запрещён. Может твой IP по какой-то причине в бане.
Alhimik
Либо используй прокси, либо качай с другой машины.
🦋noteee
Либо используй прокси, либо качай с другой машины.
Я через wget по идеи могу скачать. А затем как сделать установку или в какую папку распаковать архив?
Alhimik
Возможно использовать в запросе для скачивания прокси?
Не знаю как в винде, в линуксе нужно в переменной среды указать прокси: HTTP_PROXY=http://username:password@10.10.1.10:1180
Alhimik
Я через wget по идеи могу скачать. А затем как сделать установку или в какую папку распаковать архив?
Вроде сюда сохраняет, только версию на свою поменяй: node_modules/puppeteer/.local-chromium/linux-938248/
🦋noteee
Пошла установки. Пришлось установить proxy. Тень, спасибо за помощь!
AngryBunny
Всем привет. Подскажите пожалуйста есть ли у кого опыт работы с контейнеризацией Puppeteer/Node/Chromium под ARM архитектуру?
1
❓Подскажите, как скачать по ссылке csv файл и закинуть в переменную?
Alhimik
❓Подскажите, как скачать по ссылке csv файл и закинуть в переменную?
Через любой http-клиент. Не обязательно всё делать через puppeteer.
Андрей
Ребят, подскажите плз, как открыть popup расширение? прост оно работает, если именно на определенной странице его открыть
Андрей
на новой странице не вариант открывать
Alhimik
Ребят, подскажите плз, как открыть popup расширение? прост оно работает, если именно на определенной странице его открыть
// Делаем клик и ждём открытия новой страницы const [popup] = await Promise.all([ new Promise(resolve => page.once('popup', resolve)), btn.click(), ]);
Андрей
мне в новой странице не вариант его открывать, нужно именно по текущей работать
Alhimik
// Делаем клик и ждём открытия новой страницы const [popup] = await Promise.all([ new Promise(resolve => page.once('popup', resolve)), btn.click(), ]);
Но если это расширение, он может не поймать такое окно. Тогда просто перебирай page.pages() и смотри что там.
German
Друзья, Подскажите пожалуйста, как можно капчу обойти? После ввода логина и пароля выходит капча с цифрами. Буду крайне признателен за любую информацию.
Alhimik
и открываю я его вкладки расширений
Я понимаю. Но это такая же отдельная страница. Просто она во всплывающем окне.
Андрей
Спасибо, сча попробую
Андрей
как их хром запускает в попап?
Андрей
именно нужно, что-бы открылось в попап, а не на новой странице, ибо расширение считывает инфу со страницы и редактирует ее
Alhimik
именно нужно, что-бы открылось в попап, а не на новой странице, ибо расширение считывает инфу со страницы и редактирует ее
Как открыть не знаю, я думал тебе нужно получить доступ к автоматически открывшемуся popup.
Андрей
Не, такое я проделывал уже, а вот с этим разобраться не могу кек(
Alhimik
Я не пробовал, но есть некоторые предложения.
Андрей
Alhimik
нету там chrome.tabs
"Там", это где?
Андрей
в хромиум