Andrey
да
vveare138
сейчас попробую
Andrey
или сразу fc-match serif
только fc-match sans-serif не то написал
vveare138
blessuser@3ed5fc2f231f:/usr/src/app$ fc-match sans-serif Verdana.ttf: "Verdana" "Regular"
vveare138
тоже не поддерживает, судя по таблице
Andrey
чет я уже не верю в нее, в ворде поддерживается
Andrey
ну суть в этом мне так кажется, используется шрифт в котором нет символа рубля
vveare138
ну суть в этом мне так кажется, используется шрифт в котором нет символа рубля
а как чекнуть какой шрифт используется по умолчанию пьюпитром/хромом при рендеринге пдф?
Andrey
в безголовом не знаю, а так - вот тут
Andrey
в первых трех нет этого глифа, поэтому четвертый используется
vveare138
спасибо
Исмаил
[Error: ENOENT: no such file or directory, mkdtemp 'C:\Users\Bot\AppData\Local\Temp\2\puppeteer_dev_profile-XXXXXX'] { 0|index | errno: -4058, 0|index | code: 'ENOENT', 0|index | syscall: 'mkdtemp', 0|index | path: 'C:\\Users\\Bot\\AppData\\Local\\Temp\\2\\puppeteer_dev_profile-XXXXXX' 0|index | }
Исмаил
всем привет, с такой ошибкой не сталкивались?
Исмаил
запускаю скрипт в ноде, запускается отдельным чайлд процессом
Исмаил
что самое странное, ловлю ее, если процесс родитель, тоесть тот который запускает папитир процессы, запускается через pm2, в автозапуске машины, если просто запускаю вручную, то проблемы нет
Исмаил
Если у кого нибудь есть хоть какие нибудь предположения, или знает примерно хотя бы что гуглить, буду очень признателен
Andrey
с правами скорее всего
Исмаил
А что может быть с правами?
Andrey
Пишется в папку пользователя Bot, права на нее есть при автозапуске этом?
Andrey
С pm2 не работал, но быстро в доке глянул, что там от сервиса все стартует
Andrey
а сервис это не пользователь Bot
Oleksandr
Всем привет. Подскажите как побороть такую проблему. Нужно зайти в панель сделав логин. С локального сервера все ок работает но в продакшин сервера при попытке логина вылетает каптча
Oleksandr
Хотелось бы понять как сделать так что бы не палится
Oleksandr
стелз прикручен.. так же прикручен динамический агент... сейчас попробуем прокси использовать
Gambit501
стелз прикручен.. так же прикручен динамический агент... сейчас попробуем прокси использовать
Палят вас скорей всего по ip, видит что ip с датацентров, а не обычный пользовательский, вот и вылетает на капчу
Oleksandr
прокси разрулил ситуацию
Назар
Можно ли с помощью puppeter-core установить хром локально для папитира, а не использовать установленный? Чтоб оно его установило как хромиум копию для пакета.
Andrey
Хром - нет, хромиум - да
Andrey
https://pptr.dev/#?product=Puppeteer&version=v2.1.1&show=api-class-browserfetcher
Назар
вопрос не в том. Я знаю, что можно хром, но я не хочу запускать свой хром, а чтоб папитир установил локальную копию хрома, как он сейчас делает с хромиум
Andrey
Хром устанавливается в систему, он не портабелен. Были неофициальные portable версии с ограничениями, с ними не работал
Andrey
я именно так юзаю установленную версию
Andrey
например, менеджер паролей
Назар
если я буду использовать свой хром, то что там будет? Он будет чистый использоватся? Без разширений, автодополнения и тд?
Andrey
что значит не будет работать) Ты его сперва собери так, чтобы он как portable запускался
Назар
а если не укажу, то оно будет пустое и не созранит или возьмет мои данные?
Andrey
даже не знаю что ответить) теоретически можно что угодно сделать, вопрос в потраченном времени и полученном результате.
Назар
мне не нужны они вообще. У меня сейчас на хромиум не хранится ничего между запусками
Назар
ок, если укажу user-data-dir, то тогда связи с моим хромом и данными там никакой не будет?
Andrey
мне не нужны они вообще. У меня сейчас на хромиум не хранится ничего между запусками
тогда может тебе просто инкогнито режим юзать, если ничего не нужно
Назар
тогда может тебе просто инкогнито режим юзать, если ничего не нужно
наверное можно, но в инкогнито все равно же есть и пароли и автодополнения
Andrey
Они там есть, потому что не в инкогнито были Делаешь одну рабочую user-data-dir и используешь инкогнито Без понимания что ты вообще делаешь и почему переходишь с хромиума вариантов может быть много разных
Ислам
Всем привет! У кого ни будь есть опыт работы в puppeteer с открытыми SSL ключами?
Ислам
или хотя бы через библиотеку Request
Ислам
возможно кто-то сталкивался? (:
Ислам
проблема оказалась в библиотеке request, она бросает эту ошибку, поставил параметр rejectUnauthorized: false, и все заработало
Ислам
Ислам
возможно кому-то поможет
Akhmed
Здарова пацаны, подскажите пожалуйста. Хочу написать бота для игры в Facebook, проблема заключается в том, что не получается получить значение элемента. В чем может быть проблема ?
Pavel
Вышел Pupeteer 3.0. Главные изменения: - основан на Chromium 81 - поддержка cкачивания бинарника Firefox Nightly - загрузка файлов стала работать надёжнее - прекращена поддержка Node.js 8 - кодовая база мигрирует на TypeScript - собственный test runner framework был заменён на Mocha https://github.com/puppeteer/puppeteer/releases/tag/v3.0.0
Akhmed
Страница: https://www.facebook.com/instantgames/play/583587699049242 Селектор переменной: #v_torque_tick_5
Akhmed
Если юзать querySelector в консоли браузера, то работает только после select element. Как я понял, из-за отсутсвия полного доступа к DOM.
Akhmed
да даже эта функция не работает page.waitForSelector('#v_torque_tick_5');
Akhmed
Andrey
ни с переменной селектора проблема?
Akhmed
ни с переменной селектора проблема?
Так, я с чем-то накасячил, но до этого он показывал правильный селектор и выдавал ту же ошибку
Akhmed
Во
Akhmed
тоже самое
Akhmed
дал прогрузиться
Akhmed
const puppeteer = require('puppeteer'); async function a(){ const browser = await puppeteer.launch({headless:false,args: ['--no-sandbox', '--disable-setuid-sandbox']}); const context = browser.defaultBrowserContext(); context.overridePermissions("https://www.facebook.com", ["geolocation", "notifications"]); const page = await browser.newPage(); await page.goto('https://www.facebook.com/login.php'); element = await page.$("#pageTitle"); text = await page.evaluate(element => element.innerHTML, element); console.log(text); await page.focus('input[name="email"]'); await page.keyboard.type('login'); await page.focus('input[name="pass"]'); await page.keyboard.type('pass'); await page.click('button[id="loginbutton"]'); await page.waitForNavigation(); await page.click('#navItem_583587699049242 > a > div'); console.log("I'm ready"); page.waitFor(40000) let strongs = await page.$$eval('#v_torque_tick_5', items => items.map( item => item.className)); console.log(strongs); try{ page.waitForSelector('#v_torque_tick_5'); } catch(err) { strongs = await page.$$eval('#v_torque_tick_5', items => items.map( item => item.innerText)); console.log(strongs); } }
Akhmed
Все равно не находит
Akhmed
если выводить ошибку, то так же таймаут
Akhmed
мне нужно не решение ошибки, а понять, как получить тег по селектору
Akhmed
Akhmed
Аааааа
Ислам
Возможно я не дочитал в доках, но после того как вызываю await page.goto(...) сессия страницы уничтожается, аналогичная ситуация когда await page.evaluate(async function() { window.location.href = 'same_domain' }) как на другую страницу перейти не убивая сессию?
Ислам
отбой, срабатывает защита на сайте с подстановкой jsessionid в url для каждого запроса
Akhmed
Akhmed
const frame = await page.waitForSelector('#quicksilver_player > div > div > iframe'); console.log('iframe is ready. Loading iframe content'); const doc = await frame.contentDocument; console.log('iframe loaded.'); let a = await doc.querySelector('#v_torque_tick_5'); console.log(a);
Akhmed
Пацаны, у меня теперь проблема с фреймом. почему он не может найти ?
Ислам
у кого-нибудь есть под рукой пример загрузки pdf, после нажатия на кнопку открывается новая вкладка, как надежнее всего захендлить и скачать?
Cenator 🐈
Всем привет Есть какие-либо известные параметры, по которым сайт может распознать пуппетеер? И если да, то как это обойти?
Ислам
https://gist.github.com/tegansnyder/c3aeae4d57768c58247ae6c4e5acd3d1
Ислам
не говоря уж о банальном UserAgent
Cenator 🐈
Да я менял юзер агент, не помогло
Cenator 🐈
Нашел stealth plugin, помогло