Назар
Ислам
ребят, у кого ни будь есть актуальные данные сколько один браузер (одна вкладка) запущенная в headless на 30 секунд ест ОЗУ?
Gambit501
Gambit501
Смотря какой сайт
Ислам
понятно, спасибо
Ислам
там на фронте не тяжелый js
Ислам
какой-то проприетарный фреймворк с SSR на java
DeniskaAb
Cenator 🐈
Akhmed
Пацаны, подскажите плииз
Akhmed
const text = await page.evaluate(() => document.querySelector('.sprite32 sprite32-theory').textContent);
console.log(text);
Akhmed
у меня почему то не ищет по классу, при это класс есть. в чем может быть проблема
Назар
Akhmed
Akhmed
Akhmed
Назар
class= это не название класса, а список классов через пробел.
Akhmed
Akhmed
ооооо, спасибо всем, я понял свою ошибку
Pavel
Pavel
Я только сейчас попробовал обновить, у меня запинена версия.
Pavel
Второго разраба подключили от гугла, потихоньку начали разгребать issues
Назар
а я хотел бота своего переключить на 3 на firefox
Назар
походу рано
Pavel
Похоже зависит от проекта, и даже от CI
Pavel
а не, открыл Github Actions там тоже феил.
Pavel
Назар
можно подключить реальный хром, но хотелось бы чтоб папитир свой использовал. Хромиум не умеет в это, думаю что з firefox получится
Pavel
Примеры: https://github.com/checkly/puppeteer-examples
Recorder: https://github.com/checkly/puppeteer-recorder
Owesome Puppeteer: https://github.com/transitive-bullshit/awesome-puppeteer/blob/master/readme.md
Chrome CDP API: https://chromedevtools.github.io/devtools-protocol/
Playwright: https://github.com/microsoft/playwright
Назар
как заставить папитир firefox установить себе?
Назар
https://github.com/puppeteer/puppeteer/blob/master/examples/cross-browser.js
Назар
взял этот код, написал в консоль PUPPETEER_PRODUCT=firefox npm install, но не работает
Назар
а, все. Нужно удалить нод модули
Akhmed
Пацаны, а как получить доступ к iframe, который находится в iframe.
Akhmed
я вроде бы объявил первыый фрейм, пытаюсь объявить 2 фрейм, но чет не хочет он
Akhmed
const frame1 = await page.frames();
const tryItFrame1 = await frame1.find(f => f.url() === 'https://apps-583587699049242.apps.fbsbx.com/instant-bundle/2807803729278177/3611730432175412/index.html?version=142&gcgs=1&source=fbinstant-583587699049242&entry_point=www_app_bookmark&IsMobileWeb=0');
await tryItFrame1.waitForSelector('#game_iframe');
const frame2 = await tryItFrame1.frames();
Akhmed
точнее, он ругается, что нет функции frames() для фрейма, хотя мне кто-то говорил, что с frame надо работать как с page
Akhmed
Спасибо
Akhmed
Подскажите плииз, почему через раз выдает ошибку того, что frame не найден ?
Akhmed
console.log('Waiting for first frame');
page.waitForSelector('#quicksilver_player > div > div > iframe');
const frame1 = page.frames();
const tryItFrame1 = frame1.find(f => f.url() === 'https://apps-583587699049242.apps.fbsbx.com/instant-bundle/2807803729278177/3611730432175412/index.html?version=142&gcgs=1&source=fbinstant-583587699049242&entry_point=www_app_bookmark&IsMobileWeb=0');
console.log('First frame is found');
console.log('Waiting for second frame');
// tryItFrame1.waitForNavigation();
tryItFrame1.waitForSelector('#game_iframe');
const frame2 = tryItFrame1.childFrames();
const tryItFrame2 = frame2.find(f => f.id() === 'game_iframe');
console.log('Second frame is found');
tryItFrame2.click('#wnd_tt_warn_agree');
Akhmed
Andrey
await tryItFrame1.waitForSelector...
Akhmed
я убрал асинхрон, почему он может позже появляеться
Akhmed
Akhmed
я везде убрал await, page.waitForSelector('#quicksilver_player > div > div > iframe'); ждет фрейма, который присваивается к tryItFrame1
Pavel
Сегодня вышел Node.js 14. На medium был опубликован пост с описанием основных изменений — "Node.js version 14 available now".
Node.js 14 переходит на текущую ветку поддержки "Current", вытесняя оттуда Node.js 13. По плану через 6 месяцев (октябрь 2020) 14-ая версия перейдёт в фазу LTS. Node.js 12 будет поддерживаться до апреля 2022 года, Node.js 10 — до апреля 2021 года.
В Node.js 14 стабилизирован Diagnostic Report. Это API позволяет получить много полезной информации для локализации утечек памяти, причин падений и проблем производительности. В канале было несколько постов про эту фичу, их можно почитать тут и тут.
В новой версии доступен экспериментальный Async Local Storage API (есть бэкпорт для Node.js 13.10). Благодаря ему в Node.js появляется готовый инструмент для сохранения данных на время жизни http-запросов и любых других асинхронных процессов.
Были сделаны мажорные исправления в Streams API для улучшения согласованности и устранения неоднозначности. Например, http.OutgoingMessage теперь подобен stream.Writable, а net.Socket ведёт себя точно также как stream.Duplex. Ещё одно заметное изменение — включение по умолчанию опции autoDestroy.
Появилась экспериментальная поддержка Web Assembly System Interface (WASI), цель которого упростить работу с нативными модулями в Node.js. Про WASI также был пост в канале ранее, его можно найти тут.
Движок V8 обновлён до v8.1. Новая версия приносит улучшения производительности и поддержку новых спецификаций: Optional Chaining, Nullish Coalescing, Intl.DisplayNames, Intl.DateTimeFormat ( calendar, numberingSystem ).
В Node.js 13 ECMAScript modules стали доступны без явной передачи флага --experimental-modules. В 14-ой версии сделан следующий значимый шаг — убрано предупреждение при использовании ESM ExperimentalWarning: The ESM module loader is experimental. Тем не менее формально ESM остаётся экспериментальной фичей, поэтому в будущем могут быть мажорные изменения.
#nodejs #release
https://medium.com/@nodejs/node-js-version-14-available-now-8170d384567e
Nikola
Добрый вечер. Подскажите пожалуйста, как сделать разрыв страницы в определенном месте? page-break-after: always; не работает...
Yuri
Всем привет. Кто-нибудь сталкивался с такой проблемой, при использовании puppeteer-extra на macos:
"Could not find browser revision 737027. Run "npm install" or "yarn install" to download a browser binary." ???
В проекте использовался puppeteer, потом возникла необходимость использовать плагины, для чего был установлен puppeteer-extra, но работать он не хочет. Пробовал удалять обычный puppeteer и оставлять только puppeteer-extra.
Andrey
extra это расширение над puppeteer, без него он не работает
Yuri
без чего?
Andrey
puppeteer либо puppeteer-core
Yuri
я так понял puppeteer-extra - это расширенная версия puppeteer
Andrey
нет, это расширение уже установленного puppeteer
Yuri
а, то есть для работы puppeteer-extra надо еще установить puppeteer-core?
Andrey
для плагинов еще поставишь и puppeteer-extra-plugin
Andrey
ты плагины то какие собираешься ставить?
Andrey
это не браузерные плагины
Andrey
это как бы расширения на уровне puppeteer
Yuri
У меня был установлен puppeteer, потом я установил puppeteer-extra. Потом заменить require('puppeteer') на require('puppeteer-extra')
Yuri
Yuri
просто вот тут написано, что надо просто установить puppeteer-extra и импорт обычного заменить на расширенный
https://www.npmjs.com/package/puppeteer-extra
Yuri
про core ничего там не нашел
Nikola
Andrey
ты разницу между ними понимаешь?
Yuri
я смысл вопроса не очень понимаю))
Andrey
https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#puppeteer-vs-puppeteer-core
Yuri
расширенная версия для использования плагинов типа stealth и т.д
Yuri
Andrey
не расширенная версия, а расширение. Типа плагинной система для pupeeter
Andrey
Yuri
ру комьюнити)))))
Andrey
домашку за тебя делать не будут)
Yuri
ЕЩЕ РАЗ
был установлен puppeteer, потом дополнительно был установлен puppeteer-extra, потом (как в нпм написано) импорт обычного был заменен на puppeteer-extra и в итоге НЕ РАБОТАЕТ. причем тут то, что ты скинул?))