Alhimik
Понял, это то, что я хотел услышать. Спасибо
Кстати, ещё можешь посмотреть есть ли у browser событие error. Я точно не помню есть ли он там.
🦋noteee
Кстати, ещё можешь посмотреть есть ли у browser событие error. Я точно не помню есть ли он там.
В плане слушателя .on Ты предлагаешь его ловить и закрывать браузер ?
Alhimik
В плане слушателя .on Ты предлагаешь его ловить и закрывать браузер ?
Ну такие события для этого и предназначены обычно. )
Slava
Фрейм там один (это чатрулетка). Селектор такой: 'div.main__portals div.app-portal:nth-child(1) div.app-modal-grid__footer div.app-modal-button-group__item:nth-child(2) button'. В консоли по querySelectorAll находится. К моменту клика времени проходит достаточно (headless: false). Просьба посмотреть и выяснить.
Slava
Напомни чёрез пару часов, посмотрю
Ну давай, заранее спасибо.
Slava
Напомни чёрез пару часов, посмотрю
Вопрос снимается, получилось.
🦋noteee
Error: net::ERR_HTTP2_PROTOCOL_ERROR at https://lolz.guru/threads/3800215 Падает данная ошибка на Ubuntu 20.04 (Без интерфейса) На Windows 10 все нормально. Подскажите пожалуйста
🦋noteee
Error: net::ERR_HTTP2_PROTOCOL_ERROR at https://lolz.guru/threads/3800215 Падает данная ошибка на Ubuntu 20.04 (Без интерфейса) На Windows 10 все нормально. Подскажите пожалуйста
@shad0w64 попробовал прежде чем тебя тегнуть, в интернете поискать. Там отсутствует такая проблема с puppeteer
🦋noteee
Это происходит только в безголовом режиме в линуксе?
headless: true В режиме false попробовать не могу, потому что у меня дебиан без интерфейса. Только терминал
🦋noteee
А другие сайты с HTTP2 работают?
Можешь отправить пример сайта пожалуйста? Попробую
Alhimik
Можешь отправить пример сайта пожалуйста? Попробую
Я уже попробовал. В хэдфул режиме ошибок нету. В хэдлес режиме так же выдаёт ошибку. Как только ставишь нормальный юзерагент то ошибки нет.
Alhimik
Вероятно они таким способом блочат хэдлес браузеры.
🦋noteee
+
Угу, это помогло. Спасибо, ты с экономил мне очень много времени. А почему под Windows все было нормально, а под Linux проблемы. Сайт как то определил без user agent, что это Linux и начал ругаться на ддос ?
🦋noteee
Alhimik
Не знаю тогда. Если хэдлес режим запускать без указания юзерагента, то по дефолту в юзерагенте написано что это хэдлес хром. На сервере видят запрос от такого браузера и блокируют его таким топорным способом, похоже.
Виктор
Подскажите, где то видел у playwright функцию сохранения/загрузки что то похожего на профиль, теперь ни как не могу найти
Виктор
и это не user-data-dir, так как работа идет с телефонами
Виктор
все нашел сам. context().storageState({ path: 'adminStorageState.json' });
Vishwas
Hey hi community. 😊
Vishwas
Hope you can help me with English
Vishwas
I am using puppeteer for scrapping Dapp. There is a scenario where I have to copy referral link and paste in the navigation bar of new tab. I am facing difficulty in performing this operation. Tried $eval method , but didn't worked. This will be very kind of you if you can help ne out to solve this scenario.
Vlad Vaviloff
I am using puppeteer for scrapping Dapp. There is a scenario where I have to copy referral link and paste in the navigation bar of new tab. I am facing difficulty in performing this operation. Tried $eval method , but didn't worked. This will be very kind of you if you can help ne out to solve this scenario.
Hey man, it's better to include all the information right away in the first message. Show your code, a sample of HTML you parse, etc. If someone has something to say, they'll reply. Also: Stackoverflow.com
In77
всем привет, обходил ли кто защиту Dynatrace ?
Shivam
this.page.goto(url)
Shivam
Ii have much experience in puppeteer since 2 years I'm scrapping LinkedIn, Craigslist, Fiverr gigs, upwork profiles, leads Facebook groups etc
Shivam
According changing and making stable DOM
Pavel
Привет. По puppeteer'у есть вопрос небольшой. Я открываю страничку с данимическим html. Как им можно полностью ее загрузить, чтобы парсить ноды, которые сразу не подгружаются?
Nik
Динамический html в смысле присутствует пажинация или ленивая загрузка какая-то? Или имеешь ввиду просто дождаться подгрузки html насколько возможно при начальном положении страницы?
In77
Или ajax ?
Pavel
Динамический html в смысле присутствует пажинация или ленивая загрузка какая-то? Или имеешь ввиду просто дождаться подгрузки html насколько возможно при начальном положении страницы?
При загрузке страницы проверил через page.content(), что не весь html считывается. Вложенностью до 3 или 4 блока только ограничивается
Pavel
Но решение нашлось. Если блок не найден таким образом, просто дождаться его загрузи через page.waitForSelector() и все работает
In77
Да все верно
Pavel
Сам нашёл как-то)
In77
WaitForXpath ещё есть
Pavel
WaitForXpath ещё есть
Да, тоже можно. Вообще xPath прям больше нравится
In77
В консоли хрома можешь через $x('xpath') проверить
In77
Да лучше через него, проще и фукциональнее
Pavel
В консоли хрома можешь через $x('xpath') проверить
Да, уже разобрался. Через copy xpath вообще сам собирается. Только индексы почистить и все ок
Pavel
Ни разу не тестировщик, использую только для разработки
In77
И я не тестировщик
Pavel
Вообще puppeteer - очень мощная штука, все действия пользователя как на ладони
In77
Просто через копи там грязи много
Pavel
Ну разве что индексы и идшники
Pavel
Вообще сегодня залогинил бота через пользователя 😀
In77
Ну изменилась немного верстка и уже беда
Pavel
Self-боты в любой системе могут работать теперь)
In77
Есть сайты для которых puppeteer надо готовить, а то блочат
Pavel
Есть сайты для которых puppeteer надо готовить, а то блочат
А как узнают? Можно же тайминги выставить чтобы уж мгновенных кликов не было
In77
Тайминг не причем
In77
Посмотри fingerprint браузера
Назар
всем привет. Как вернуть из метода еvaluate обьект с цикличискими зависимостями? Я так понял из evaluate папитир делает JSON.stringify JSON.parse?
Alhimik
всем привет. Как вернуть из метода еvaluate обьект с цикличискими зависимостями? Я так понял из evaluate папитир делает JSON.stringify JSON.parse?
Никак не вернуть такой объект. Нужно убирать циклические ссылки. Да, там обычная JSON-сериализация.
Назар
Ну циклички я убрал. Но как понял что и get/set и методы тоже нельзя вернуть. Обидно
Alhimik
Ну циклички я убрал. Но как понял что и get/set и методы тоже нельзя вернуть. Обидно
Вообще странная задача. Если тебе нужно запомнить какой-то объект и потом в другом evaluate использовать его, то можно поместить его в хэшмапу и уникальный id вернуть. А так, чтобы "живой" объект с методами возвращать не представляю для чего нужно.
Alhimik
Может тебе нужна exposeFunction()?
Bogdan
всем привет, когда в headless моде делаю скриншот страницы которая содержит iFrame то фрейм просто белым фоном закрашивается и не попадает в скрин. в headfull все работает коректно. как можно пофиксить?
Bogdan
Возможно это поможет https://t.me/puppeteer_ru/6308. Но я не проверял.
эта опция у меня включена. Без нее помню вообще да не грузились фреймы. При этом похоже это произошло после апдейта, у меня была 5 версия пупитира, и там вроде скринилось как надо, щас попробую откатится посмотреть.
Bogdan
Попробуй ещё в playwright, там из коробки обычно всё хорошо. Если будет работать, смотри отличия в опциях запуска.
да давно кстати хотел playwright попробовать, там функционал такой же как и у пупитира?
Alhimik
да давно кстати хотел playwright попробовать, там функционал такой же как и у пупитира?
Возможности такие же и даже больше в некоторых моментах (например селекторы работают прозрачно с Shadow DOM).
Alhimik
апи такойже или прийдется переписывать что-то, чтобы мигрировать?
Конечно придётся переписывать. Там переработан и улучшен API. Плюс там контексты добавлены, селекторы универсальные и т.д.
Alhimik
https://playwright.dev/docs/intro
Alhimik
Есть тулзы для автоматического конвертирования (пример), но я их не пробовал. Проще для новых проектов пробовать playwright, как мне кажется. Может и не понравится вовсе.
Bogdan
апи да поприятнее выглядит, просто у пупитера ништяков много есть кластеры, стелсы и другие экстры. Тут я так понимаю этого всего пока-что нету.
Anton
Подскажите, плз, в чем преимущество кластера перед работой с несколькими вкладками? Кто-нибудь работал с этой фишкой? Я сравнивал оба варианта, у меня получилось, что кластер медленнее работает. Массив ссылок быстрее перебрать на нескольких вкладках, чем через кластер. Из преимуществ в голову приходит только отказоустойчивость - кластер обработает повторно проблемную страницу.
Bogdan
при этом тебе никто не мешает вроде как грузить несколько вкладок и при этом запускать кластер
Anton
стейт - это куки, локалсторейдж и т.п.?
Bogdan
стейт - это куки, локалсторейдж и т.п.?
да браузер в целом, если будет ошибка на одной вкладке то все остальные тоже закроются.