Alhimik
Выведет проблемную куку.
artem
из 3к
artem
может если он не может прочитать куку просто удалять ее?
Alhimik
где-то штук 30 куков насыпал
Ну вот, теперь смотри чем они отличаются от остальных. Попробуй одну из этих кук подставить сам: await page.setCookie({ name: "test", value: "123", ... });
Alhimik
где-то штук 30 куков насыпал
Хотя, я понял в чём проблема.
Alhimik
Alhimik
Просто сделай им secure: true и всё.
artem
вау
artem
может тогда просто всем secure true двать или плохая идея?
Alhimik
может тогда просто всем secure true двать или плохая идея?
for (const cookie of cookies) { if (cookie.name.startsWith("__Host-")) { cookie.secure = true; } }
Alhimik
может тогда просто всем secure true двать или плохая идея?
Могут быть проблемы с сайтами, у которых http.
artem
Могут быть проблемы с сайтами, у которых http.
ну если мне по сути только ссесия ютуба нужно то на это пофиг же?
artem
+
тень помоги еще чуть чуть пожалуйста, я переработал чистые куки и получил это - они заходят в пупетир без ошибок но сессия не валидная
artem
а вот валидная ее я просто пупетиром достал
artem
вот как я переваривал куки
artem
мне кажется что проблема в ключах
artem
но сам не могу догадаться как решить (
artem
вот как чистые куки выглядят
artem
Ты в domain указываешь url.
а ну все я уже поплыл 😅, пойду отдыхать. Спасибо еще раз без тебя я бы на год встрял
artem
а как можно загружать файлы при помощи puppeteer? ведь когда нажимаешь на кнопку 'select files' открывается окно с проводником
Anonymous
чем отличается $eval от $$eval
Alhimik
чем отличается $eval от $$eval
https://pptr.dev/#?product=Puppeteer&version=v10.4.0&show=api-pageevalselector-pagefunction-args
artem
а я нашел такую реализацию, сгодится?
artem
тень смотри на ютубе после того как загружаешь видео есть форма я могу же посмотреть на какой а дрес и с какими хедерами улетает запрос и вместо того чтоб заполнять эту форму руками так же отправить поcт запрос на сервер ютуба?
Alhimik
тень смотри на ютубе после того как загружаешь видео есть форма я могу же посмотреть на какой а дрес и с какими хедерами улетает запрос и вместо того чтоб заполнять эту форму руками так же отправить поcт запрос на сервер ютуба?
Да можешь конечно. Но там может быть какая-нибудь цепочка запросов для получения токенов. И зачастую проще оказывается имитировать именно пользовательское поведение. А если запросы простые то можно и без браузера конечно же.
artem
Да можешь конечно. Но там может быть какая-нибудь цепочка запросов для получения токенов. И зачастую проще оказывается имитировать именно пользовательское поведение. А если запросы простые то можно и без браузера конечно же.
ттень как быть тут? эти кнопочки имеют одинаковые селекторы различаются только поля name можно как-то пупетиру указать что кликать нужно на кружечек с name= 'UNLISTED', если на него нажать то добавляются атрибуты checked и active
artem
artem
Мне кажется или ты даже не пытаешься в документацию смотреть? )
там очень много всего, я нашел $$eval но он не работает тут
Alhimik
Используй, например waitForXPath(). У него сильно мощнее возможности чем у css-селекторов.
Alhimik
https://devhints.io/xpath
Anonymous
я не понимаю
Anonymous
в чем разница
artem
$eval собирает первый попавшийся элемент на странице вроде
artem
а $$eval возвращает массив элементов с указанным селектором
Anonymous
Array.from(document.querySelectorAll(selector))
Anonymous
document.querySelector
Anonymous
Да, спасибо, допер
Anonymous
я просто чет мимо пропустил All и простой селектор
Anonymous
+ $$eval возвращает в виде массива
Anonymous
$eval нет
Anonymous
как я понял
Anonymous
то есть, если у меня Условно <div class='1'> <div class='2'> <li>fruit</li> <li>Poop</li> </div> </div> то при вызове $$eval(".1.2", li =>{}) результат будет все лишки?
Anonymous
Если способ отслеживать события, если в опр.селектор добавился новый элемент?
Anonymous
или чем таймаут обновлять и проходить сверку с теми данными что есть в массиве и на странице, и в случае отличия
Anonymous
пушить
Anonymous
в массив новые данные из нового элемента?
artem
в массив новые данные из нового элемента?
я не до конца понял что ты хочешь сделать, но используя xPath в качестве селектора ты можешь контролировать все поля и например ждать появления определенного поля и только после его появления нажимать туда https://devhints.io/xpath почитай может тоже ченить нужное выцепишь
artem
тень вот результат наших стараний
artem
еще не финальная версия но уже выглядит круто
Alhimik
тень вот результат наших стараний
А ты не пробовал для таких вещей API ютуба использовать?
artem
А ты не пробовал для таких вещей API ютуба использовать?
не тень ты че моя задача наооборот его обойти
artem
чтоб не логиниться а использовать куки
artem
сессии чужих каналалов для загрузки видео
artem
и так у меня нет никаких ограничений
artem
в случае с ютуб апи у меня связаны руки
artem
там 3 видео в сутки и бесплатный трафик заканчивается
artem
да еще и куки никак не использовать
Светлана
Кто-то наснифферил чужих сессий и хочет позасирать чужие каналы?)
artem
Это официальный лимит апи?
там в мегобайтах было
Alhimik
Кто-то наснифферил чужих сессий и хочет позасирать чужие каналы?)
Похоже на то. Ещё и палит зачем-то всё это. 😜
artem
но когда я в прошлый раз пробовал хватало на очень мало
artem
нужно постоянно гугл аккаунты свиячать чтоб лимит обойти
artem
там кста еще вроде нужно разрешение запрашивать у канала
artem
на загрузку видео
artem
тень как быть если я хочу такой кук преобразовать { name: 'CONSISTENCY', value: 'AGDxDeNDx96dSQibH7PUEvVacnnhLjb1rY89MYhvY0E9wIUtQw9fHMT_lp6Y2JgMg3Y6A_y_7gaB9suIdvdV1WqMDwXySNXG1dhpl_IR5fNnuOc2AtSu-2O4sNYWPQVYhv40DA3t3d3Hvu-SIS6iUwI', domain: '.youtube.com', path: '/', expires: 1633794880, size: 162, httpOnly: false, secure: true, session: false, sameParty: false, sourceScheme: 'Secure', sourcePort: 443 },
artem
в такой
artem
вроде делал все как обычно 4 ключа
artem
host raw, content raw, name raw, http only raw
artem
но браузер не может прочитать
artem