Alex
Добрый, бывает при выполнении клика если окно браузера свернуто он не кликает а стоит ждет и потом пишет ошибку если окно браузера открыто то все отрабатывает отлично, как можно это исправить?
Alex
хром
Bogdan
хром
А сколько окон(браузеров) параллельно открыто?
Alex
около 3-4
Alex
если брайзеров то только 1 вработе
Bogdan
около 3-4
А в headless тоже ошибка такая-же?
Alex
в headless не проверял
Bogdan
в headless не проверял
Если headless допустим то там этой проблемы быть не должно. Как это фиксить в headful я не нашёл хорошего решения.
Konstantin
привет всем. а что делать, если папитер продолжает работать в фоне после завершенния node процесса?
Konstantin
🦋noteee
Привет, жалко тебя. pkill/kill <process_name>
Alex*
Я как-то в такой ситуации, через pm2 API искал такие процессы и убивал.
🦋noteee
Я как-то в такой ситуации, через pm2 API искал такие процессы и убивал.
Не лучший вариант конечно, но как сделать лучше я не знаю. Явно мне не нравится, что такая проблема присутствует. Когда решите, пинганите, у себя тоже решу
Alex*
Решается очевидно своевременным browser.close(), или в крайнем случае process.exit()
🦋noteee
Решается очевидно своевременным browser.close(), или в крайнем случае process.exit()
Но вот что делать при принудительным убитии процесса
Konstantin
Но просто мне бы хотелось чтобы они закрывались автоматом
🦋noteee
Но просто мне бы хотелось чтобы они закрывались автоматом
При обычном закрытии скрипта — все закрывается?
Konstantin
При обычном закрытии скрипта — все закрывается?
У меня внутри скрипта все отключается и работает. Просто сейчас пока тестирую, я не прерываю выполнение скрипта и у меня не доходит до той части, где непосредственно идёт закрытие браузера
Андрей
Привет! 1) Можно ли при парсинге пупом паралельно работать с 2 и более вкладками? 2) Кто-нибудь знает сервис, позволяющий автоматизировать верификацию на временные номера? Есть smsactivate, но там кажется нет взаимодействия по API, нужно вручную номера покупать.
Bogdan
Привет! 1) Можно ли при парсинге пупом паралельно работать с 2 и более вкладками? 2) Кто-нибудь знает сервис, позволяющий автоматизировать верификацию на временные номера? Есть smsactivate, но там кажется нет взаимодействия по API, нужно вручную номера покупать.
Можно. Но крайне не желательно это делать. Вкладки шарят стейт, если в одной вкладке что-то упадет то все другие тоже грохнутся(а это часто происходит). Лучше отдельно браузер под каждую работу грузить.
Андрей
Можно. Но крайне не желательно это делать. Вкладки шарят стейт, если в одной вкладке что-то упадет то все другие тоже грохнутся(а это часто происходит). Лучше отдельно браузер под каждую работу грузить.
Спасибо за информацию! Буду смотреть. ПОдразумевается - открытие 2 браузеров одновременно с возможностью совершенеия произвольных действий в них в произвольном порядке?
Bogdan
Спасибо за информацию! Буду смотреть. ПОдразумевается - открытие 2 браузеров одновременно с возможностью совершенеия произвольных действий в них в произвольном порядке?
Да( или больше чем 2), каждый браузер для одного пользователя/контекста Может быть несколько вкладок в одном браузере но все принадлежат одному пользователю/контексту
Bogdan
Это про state. Шарить state между контекстами очень плохо, особенно когда это chromium.
Bogdan
У тебя даже с прокси будут заморочки если ты будешь с нескольких вкладок парсить. Прийдется костыли писать, чтобы для каждой вкладки свой IP грузился.
Alex
I don't know russian, I'm from India and I'm looking for a expert dev of Puppeteer and Node.js to automate some tasks via Telegram bot.
1
Выбирается Option, а как активировать Event? Если мышкой выбрать, то выполняется Event, а если через page.select, то не выполняется?
Aleksey
Ребят, кто подскажет на сколько скорость отрисовки страницы через pupetteer в headless режиме , медленнее чем обычный заход юзера на страницу ? Либо разница минимальной должна быть ? ( Ну Бут браузера / запуск открытия страницы )
Black_Yuzia
Всем привет. Я могу как-то с Puppeteer принять диалоговое окно / указать какие-то данные / путь в случае скачивания файла? Мне надо знать имя файла чтобы я мог с ним дальше работать
Bogdan
https://pptr.dev/api/puppeteer.filechooser
Bogdan
Если скачать нужно то там ссылка должна быть для реквеста в html, сделай туда http реквест и сохрани бади. Либо вот этот метод попробуй https://pptr.dev/api/puppeteer.filechooser.accept
User
Как получить JSON файл по ссылке (https://site.com/file.json) в переменную?
User
Спасибо, как вариант ещё придумал так: page2 = await browser.newPage(); await page2.goto('https://site.com/file.json'); html = await page2.$eval('*', (el) => el.innerText); json = JSON.parse(html) await page2.close()
Eugene
Ребят, а может у кого-то есть хитрое решение, которое по массиву сайтов пробегается и рандомные действия творит на сайтах?
Eugene
Рандомные это какие?
Клики, формы, экоммерс добавление в корзину в общем какой-то рандомный серфинг
Aleksey
Привет, что посоветуете для мультипула ? Что то типо на базе generic pool ? Либо свое лучше накидывать ? 👀👀
Anonymous
Good groups or channel for course
🅰️nimeCoder
Влад
Жызнь это боль
Bogdan
есть какая-нибудь опция, чтобы через пупитер просто проследовать по ридиректу без загрузки html?
Alex*
Всем привет. Не могу пройти каптчу WB. Решается, текст вводится правильный, но не принимается - говорит - неверно. Вижу что есть скрытые поля - очевидно надо и сними провести манипуляции.
Alex*
Konstantin
хай всем! у меня запущен софт на сервере и спустя какое-то время работы софта вылезает ошибка 0|opensea | Error [ProtocolError]: Protocol error (Network.getResponseBody): Target closed.
Konstantin
не подскажите с чем связано может быть?
Alex*
А что в консольке обычного браузера в разделе network отправляется?
Редко возникает. Парсер на сервере без иксов. Воспроизвести на десктопе не получается. Пока обошел проблему так - скопировал профиль с компа на сервер и логин прошел
Alex*
https://pptr.dev/api/puppeteer.elementhandle.screenshot
1
Как отловить полученные данные, после нажатия кнопки, через метод GET? Инициатор jquery-2.1.1.min.js отправляет запрос в таком виде: https://site.com/?callback=jQuery21102666189334321396_1665163042834&type=default&publickey=42bb9e3e5&lang=en&services%5B%5D=63974&agendas%5B%5D=63269&version=1243&src=https%3A%2F%2Fsite.com0%2F&srvsrc=https%3A%2F%2Fsite.com&start=2022-10-01&end=2022-10-31&selectedPeople=1&_=1665163042842 Получает ответ в таком виде: callback=jQuery21103386998589587952_1665160199999({"Data":[1,2,3]}) что-то на подобии этого использовать? page.waitForResponse(r => r.request().url().includes('site.com') && r.request().method() != 'OPTIONS');
:):):):)
Привет ребят, подскажите, можно ли как-то писать в полях ввода с помощью пупитира?
Black_Yuzia
Привет ребят, подскажите, можно ли как-то писать в полях ввода с помощью пупитира?
Уточни что именно. Вводить символы или сразу целые слова
Alex*
слова
await page.focus(selectorInput) await page.keyboard.type('слова')
Alex*
или await page.type(selectorInput, 'слова', { delay: 20 })
:):):):)
спасибо☺️
Alex*
или, если надо сразу ) await page.$eval(selectorInput, el => el.value = 'Очень много слов');
:):):):)
а как-нибудь в переменную можно занести текст с сайта?
Artem
Как отправить форму на авторизацию в vk? залогиниться надо, id button нет, но есть класс длинной в "пять метров". Спасибо
Black_Yuzia
Как отправить форму на авторизацию в vk? залогиниться надо, id button нет, но есть класс длинной в "пять метров". Спасибо
Находишь кнопку по классу, если класс уникальный. Если нет - добавляешь ещё классы / элементы которые должны быть у родителей. Например: div.parent > button.submit-button Если вопрос в другом то уточняй
User
Как получить значение text из page.on? return text не работает, как-то надо оборачивать в функцию? (async () => { page.on('response', async (response) => { if (response.url().includes("site.com")){ let text = await response.text() } }) console.log(text) })()
Bogdan
Попробуй так.