🅰️nimeCoder
как сделать триггер из девтулса на ноду?
Сделать evaluate который вернёт promise
🅰️nimeCoder
Промис по идее должен вернутся в ноду и разрезолвится после того как вызовешь resolve в бразуере
Tofa
немного не понял
GamiD
Там есть способ получить координаты элемента и отсчитать
Если страница длинная по координатам сработает?
Bogdan
Если страница длинная по координатам сработает?
Да, либо возможно element.scrollingToView (не помню как точно называется функция но как-то так)
Bogdan
Кто-нибудь обратно пробовал брать координаты со скрина и матчить элемент по ним?
Tofa
Как лучше всего солвить рекапчу? Использую плагин puppeteer-extra-plugin-recaptcha, но две проблемы 1. Говорит, что сайткей не верен 2. Сайт дофига умный и простит именно галочку поставить, а не просто решить капчу
Tofa
Ну поставь галочку после решешения
чтобы она поставилась нужно выбрать картинки верные
Tofa
еще есть вариант вручную решать капчу, но как отлавливать момент ее решения?
Bogdan
чтобы она поставилась нужно выбрать картинки верные
Ну это понятно, что ее нужно верно решить, ты в пункте два написал про поставить галочку
Tofa
поставить галочку имеется ввиду в самой рекапче
Bogdan
Ну в чем проблема чтобы ее поставить? Она в iFrame грузится
Tofa
так, и как это сделать?
Bogdan
Тебе нужно поймать iFrame а дальше все как обычно
Bogdan
В документации у пупитира введи iFrame найдёшь методы
Tofa
понял, спасибо
Bogdan
А если на гитхабе поищешь то найдёшь готовые решения
Tofa
я тут нашел, то что после решения капчи в span-anchor добавляется класс .recaptcha-checkbox-checked, но почему-то await page.waitForSelector('.recaptcha-checkbox-checked', {timeout: 30000, visible: true}) не отрабатывает. Может, я что-то не так делаю и есть более правильный способ?
Британец
Британец
https://gist.github.com/aslushnikov/94108a4094532c7752135c42e12a00eb
Британец
https://github.com/puppeteer/puppeteer/issues/4378 тут есть пример кода как все подключить
🅰️nimeCoder
Если страница длинная по координатам сработает?
Должно) если конечно там не инфинитив скрол какой то
GamiD
https://gist.github.com/aslushnikov/94108a4094532c7752135c42e12a00eb
Спасибо вот как раз пробую его
Tofa
вот у меня есть два дива с одинаковым классом, но один из них с display: none. Как взять тот, что без аттрибута display: none ?
GamiD
https://gist.github.com/aslushnikov/94108a4094532c7752135c42e12a00eb
Внутри iframe Не кликает выдает ошибку
GamiD
GamiD
Все кликается но курсор остается за проеделаем iframe
GamiD
Andrey
да не курсор это, а просто отображение последних координат мышки через css/js
Andrey
вообше никак не нужен для функционала
GamiD
да не курсор это, а просто отображение последних координат мышки через css/js
потому что click происходит а в вот ошибка с действием move связано потому что await cursor.move(selector) Выдает ошибку
Bogdan
Давно не видел чтобы в редакторе кто-то белый цвет использовал. Не наезд. Просто действительно удивился.
GamiD
Давно не видел чтобы в редакторе кто-то белый цвет использовал. Не наезд. Просто действительно удивился.
Кто как привык я модуль собираю rest api не работаю с кодом потом автоматизацию делаю на другой платформе
Bogdan
Курсор вроде как должен быть просто курсором. Ты его двигаешь просто к цели а уже дальше через DOM все обрабатываешь или через методы браузера/пупитира
Bogdan
У тебя цель какая у всего этого?
Bogdan
Зачем нужен курсор?
GamiD
Зачем нужен курсор?
Эмуляция движений курсора если без ghost cursor использовать то курсор сразу двигается в нужное место без эмуляции живого человека
Bogdan
await cursor.click(selector)
Назар
Эмуляция движений курсора если без ghost cursor использовать то курсор сразу двигается в нужное место без эмуляции живого человека
я когда то нашел либу для этого на каком то китайском нпм. Но она не работала, я починил, щас сброшу пару файлов
Bogdan
ты по элементу кликаешь?
вижу что да, делай через path const from = { x: 100, y: 100 } const to = { x: 600, y: 700 } const route = path(from, to)
Назар
https://gist.github.com/NazarKalytiuk/da6ac2151e6be5c1ef111e1e9dd3132d, https://gist.github.com/NazarKalytiuk/e9327a5f92a9adddc5a21e5a54d54df5, https://gist.github.com/NazarKalytiuk/131ddea6374e0cc8c06d284ee98a82d2
Bogdan
или сюда ты должен будешь добавить фрейм const cursor = createCursor(iFRAME)
Bogdan
или сюда ты должен будешь добавить фрейм const cursor = createCursor(iFRAME)
но оно будет прерываться потому-что тебе нужно будет как-то переключаться с фрейма на пейдж
Bogdan
проще взять координаты элемента в фрейме и уже запуститить курсор через const from = { x: 100, y: 100 } const to = { x: 600, y: 700 } const route = path(from, to)
Назар
Вот 3 гиста. Там есть файл чтоб было видно курсор, файл math это считается путь через кривые безье и файл spoof там методы как раз чтоб двигать мышку и кликать. (там есть импорт getRandom для рандомной задержки, в принципе он не нужен)
Назар
а он в фрейме не заест?
в принципе можно исходник поправить и двигать по координатам курсор.
Bogdan
я думаю нужно брать координаты у стартового элемента и у конечного элемента и запускать через path гост курсор. И будет все равно во фрейме или нет какой-либо из элементов.
Bogdan
да, но оно же по прямой мышку поведет. Не похоже на человека
ghost cursor вроде как должен вводить корективы в этом же и смысл, чтобы вести как человек
Bogdan
ты ему точку а и б даешь а дальше он уже ведет как надо
🅰️nimeCoder
да, но оно же по прямой мышку поведет. Не похоже на человека
вот только крайне сомневаюсь что кто-то будет как то проверять что ты там и куда ведешь... если уж на то пошло, то если бы действительно кто-то что-то проверял, то прямое ведение мышки не первая была бы проблема, да и все равно это все на фронте, а значит легко обходится
Bogdan
а как надо?)
чтобы как человек не по прямой)
GamiD
Кто ни будь регал аккаунты Google?
🅰️nimeCoder
Я на puppeteer перешёл потому что через selenium Google аккаунт банится сразу после регистрации
ну webdriver это последняя вещь которую нужно юзать на сайтах с антифродом...
Назар
да, скорее всего мышка это твоя последняя проблема.
Bogdan
Кто ни будь регал аккаунты Google?
там вроде прокси нужен очень хороший чтобы без телефона
Bogdan
руками зарегай в начале
Bogdan
а потом автоматизируй
GamiD
там вроде прокси нужен очень хороший чтобы без телефона
Прокси чистые я на другом движке регал в сутки больше 1000
🅰️nimeCoder
ее нужно юзать ну когда уже просто пиздец никак или сроки горят как никогда
GamiD
руками зарегай в начале
В том то и дело что проблем нет руками
Назар
у гугла есть скрытая каптча. Ее не видно, но она берет много параметров и дает оценку пользователю от 0.1 до 0.9. И если мало поинтов то ты бот
Bogdan
В том то и дело что проблем нет руками
когда автоматизируйешь фингерпритн меняешь?
🅰️nimeCoder
если не ошибаюсь за 40 руб тыс штук)