Андрей
Понял, спасибо, попробую как-нибудь отловить зависание.
Да костыли конечно. Но надо хоть как-то запилить)
Андрей
Супер, спасибо!
Gambit501
Привет всем, подскажите какими средствами можно обрабатывать вот такие алерты
Gambit501
Andrey
https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#class-dialog
Andrey
там простой пример как задисмисить
Gambit501
Horus
Ребят, есть возможность отследить, что клик прошёл по кнопке и урл страницы другой теперь, те перешёл на другую страницу
Horus
Благодарю Вас!
Андрей
Добрый день, добрые люди!
Может немного не в тему, но по парсингу)
ПОдскажите пожалуйста - можно ли с помощью ноды получить контекст ячейки в excel и вытащить оттуда ссылку, которая явно не прописана, но ею программно обернуты названия сайтов.
Alex*
Андрей
Alex*
Alex*
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/get
Alex*
Заканчиваем, здесь это оффтопик )
Alex*
Но Puppeteer и Google Spread Sheet очень удобная связка.
Андрей
Андрей
Привет, ребят, никто не в курсе - что это за шифр у hyperlink в excel и как его можно декодировать?
XmS6CY4AeZfImH_u8I11b-nKlGoolqCh8OOZCq6qK9YKHIkb8cwKSoxaSTfsNLqjyQkreGE9_qms2CWI0tERutQ1AaV6bzy07URjjm4Jgpv6vZCU4LtplWg63im07ITzXyVeSNNbHF4FoGC9jBq8u98Tufc1
Андрей
ВРоде как бинарник нельзя)
Андрей
Не получилось. Оказалось - дело не в екселе, а сама ссылка так задана специально для дальнейшего редиректа
Назар
как проверить если ли класс у элемента полученного с помощью page.$$(selector)?
Gambit501
Gambit501
Это если тебе надо узнать есть ли элемента сам атрибут - class
Gambit501
Gambit501
Но я конешн не утверждаю что так лучше, я не знаю что у тебя там за сайт, может те и по другому надо
Назар
да просто все. Есть массив кнопок. Мне нужно нажать допустим на кнопку 10. Но если у нее есть класс active, то не нажимать.
Назар
Назар
Запустил скрипт на винде, и он не может сделать скриншот. Слэши поменял на \\ такие. await page.screenshot({ fullPage: true, path: `screenshots\\${moment().format("MM-DD HH:mm:ss")}.png });`
Andrey
двоеточия в разделитле времени поменяй
Andrey
это служебный символ для имени файла
Назар
Nikita
Господа, снова я к вам, снова со странной проблемой.
Хром запущен в контейнере и к нему через веб сокет цепляется папитир.
Проблема в том, что сессия закрывается, веб сокет закрывается, если бездействовать на странице 4~5 минут. Где-то так. А мне нужно что бы сессия держалась хотя бы 20 минут.
Не хочется сыпать костылями в код, типа рефреша страницы и т.д., есть какой-нибудь изящный вариант?
Что-нибудь вроде параметра запуска, не дающего сокету самоустраниться?
Nikita
Заранее погуглил, ничего адекватного не нашёл :)
Nikita
Вот да, я это и имел ввиду под костылями :) Не хочется так.
Nikita
нет, канал как раз пустой. Через папитир я запросил код, а потом 20 минут обновляю бота в телеге, и ищу этот код
Nikita
т.е. пока идёт работа у бота, на странице не происходит ничего. Никаких действий вообще
Nikita
В общем считаешь, что самый лучший вариант в этой ситуации будет что-нибудь запрашивать регулярно?
Nikita
Ладно, спасибо. Сейчас что-нибудь прикручу :)
Nikita
окей, сяпки :) Я хотел по глупому тыкать в какое-нибудь поле ввода раз в 30 секунд, но тайтл наверное проще :)
Nikita
Нифига, даже на локалке не работает :(
Nikita
org.apache.http.NoHttpResponseException: localhost:8080 failed to respond
Nikita
да, и с кликом, и с тайтлом
Nikita
эт на локалке без докера. На докете так же история
Nikita
Я что-то упускаю, очевидно :)
Nikita
Стоп стоп стоп, обождите.
Папитир отработал, но ответ от сервера не пришёл.
т.е. отвалилось соединение, но папитир продолжил работу
Nikita
Значит отваливался не сокет, а сервер. Где-то стоит таймаут на респонс
Nikita
у меня скрипт запускается через запрос.
На сервер приходит пост запрос с json на борту, дальше, запускается какой-нибудь из роутов, смотря какой запрос пришёл.
И возвращается ответ
Nikita
так же в json, уже от сервера моего
Nikita
в роуте прописан коннект к докеру через веб сокет, т.е. хром запущен отдельно вообще :)
Nikita
Простенький сервер написан на экспрессе. У него дефолтный таймаут 2мин.
Ща пропишу таймаут ручками и попробую.
Блин, а думать в слух проще, спасибо :D
Nikita
Если я правильно понял суть проблемы:
После page.title сокет перестал закрываться, паппитир отрабатывает теперь корректно, как и хром.
Вылезла проблема на сервере. Он отправляет запрос и ждёт ответ, ждёт всего 2 минуты, а у меня 20 минутный простой в коде. Он не дожидается ответа от скрипта и отваливается, а скрипт продолжает работать :)
Nikita
ща протестирую, узнаю наверняка, в этом дело или нет :)
Nikita
вроде да. :)
vveare138
всем привет, столкнулся с такой проблемой: хочу рендерить пдфку из хтмл странички на которой есть символы валют, но некоторые из них рендерятся в пдф не совсем корректно
vveare138
типа пустых квадратов
vveare138
как можно это пофиксить?
Andrey
явно проблема со шрифтами, дожидаешься их загрузки?
vveare138
да, шрифт из пдфки совпадает с тем, что на странице
vveare138
ну по крайней мере по внешнему виду)
vveare138
важная вещь - в самом шрифте отсутствуют эти иконки
Andrey
есть урл?
vveare138
нет, это крутится локально в контейнере
vveare138
сейчас попробую какой-нибудь ресурс из сети
vveare138
ну вот, кстати
vveare138
страничка топтала
vveare138
https://www.toptal.com/designers/htmlarrows/currency/ruble-sign/
vveare138
генерирую пдфку вот так
vveare138
curl -X POST \
http://0.0.0.0:3122/pdf \
-H 'Content-Type: application/json' \
-d '{"url":"https://www.toptal.com/designers/htmlarrows/currency/ruble-sign/","emulateMedia":"print","gotoOptions":{"waitUntil":"networkidle0"},"options":{"displayHeaderFooter":false,"printBackground":true,"format":"A4","scale":1.33}}'
vveare138
образ отсюда browserless/chrome:release-puppeteer-1.9.0
vveare138
сгенереная пдфка
Andrey
Andrey
fc-list в докере посмотреть
Andrey
или сразу fc-match serif
vveare138
сорян, был афк
vveare138
сейчас гляну
vveare138
blessuser@3ed5fc2f231f:/usr/src/app$ fc-match serif
Times_New_Roman.ttf: "Times New Roman" "Regular"
vveare138
похоже надо шрифт завезти, да?
Andrey
https://www.fileformat.info/info/unicode/font/times_new_roman/grid.htm