Bogdan
Понял. Ну можно ее решить фоном тогда.
Bogdan
Тебе нужно создать рекурсию. Асинхронную. В ней чекер появилась ли капча или нет. Если появилась то решаешь, если нет то делаешь рекурсионный вызов(функция вызывает сама себя).
Когда вызываешь эту рекурсию из главного модуля то нужно убрать await и вызов идёт с самого верха скрипта.
Slava
Bogdan
https://ramdajs.com/repl/ - сюда код закинь я посмотрю
Bogdan
я так не понимаю
Slava
Bogdan
```const script = (page) => {
// Run recursion without await, when this will fetch the captcha it will solve this in background.
captchaSolverBackground(page)
// Put the rest of the code here.
}
const delay = (min, max) => {
const maybeRandom = max ? generateRandom(min, max) : min;
return new Promise((resolve) => setTimeout(resolve, maybeRandom));
};
const captchaSolverBackground = async (page) => {
if (page) {
if (await isCaptchaAppear(page)) {
await vkSolveCaptcha(page);
} else {
await delay(125, 175);
return await captchaSolverBackground(page);
}
}
};
```
Bogdan
тебе нужно вообщем в эту рекурсию встроить captchaSolverBackground и запустить ее вначале пайплайна
Bogdan
и между этапами обязательно таймаут ставь такой чтобы хватило на решение капчи
Bogdan
если она появится
Slava
Slava
это я на всяких случай засейвлю
Shokhboz
Привет ребята, хотел бы узнать как воспользовать и чему нужен этот плагин в pptr - puppeteer-extra-plugin-user-data-dir? Если у кого то есть опыт)
Британец
Британец
Британец
Может что-то сохранять
Shokhboz
Могу ли я например перед запуском puppeteer изменить Cookie и тд Chrome/Default?
Shokhboz
То есть с puppeteer-extra-plugin-user-data-dir
Karen
Привет! Пытаюсь парсить страницу с помощью puppeteer
const moving_averages = await page.$eval("#techStudiesInnerWrap > div:nth-child(2) > span.redFont.bold", el => el.innerText);
Проблема в том, что в span.redFont.bold слово «redFont» может меняться каждый раз и если не redFont будет, то выдаст undefined
Можете сказать, что могу сделать?
Bogdan
Bogdan
И дальше el.innerText || el.textContent
Karen
Anton
Приветствую, коллеги!
Кто-нибудь знает каких куков может не хватать Google для успешной авторизации?
Сохраняю отдельно cookie, localstorege, fingerprint. Для яндекса хватает данных, чтобы авторизация не слетала. А гугл вынуждает заново авторизоваться.
Может кто-нибудь сталкивался и сможет подсказать?
Bogdan
Bogdan
а IP меняется скорее всего
Bogdan
либо IP очень замызганый плохого кчества
Anton
Bogdan
почту покупал?
Bogdan
gmail
Anton
и на том же IP вхожу
Bogdan
ну просто если бы куки не было бы то он бы вообще не выдал это сообщение
Bogdan
он подозревает похоже что-то либо девайс другой либо IP плохой
Bogdan
если куки он просто заного попросил бы залогиниться
Bogdan
а не подтвердить
Bogdan
Ростислав ✚
в иногнито разве куки можно?
Да, они временно хранятся пока окно не закрыто, как закрыть то удаляются, я его просто не трогал сутки и все ок перезашло без кода
Anton
и поэтому он палит девайс, а куки да, подгружаются
Bogdan
антидетект браузер какой-нибудь попробуй
Anton
Bogdan
gologin, octobrowser, multilogin
Anton
Bogdan
я с антидетектом тоже к слову встречал такую проблему описаную выше, но я акки не сам регал, а покупал, и IP динамик был.
Bogdan
но очень сильно сомневаюсь что это в кукис проблема
Bogdan
может он скрипт ловит как-то автоматизации еще хз
Anton
Bogdan
думаю нет. Если IP все же часто меняется то проблема в этом скорее всего.
Bogdan
как я изначально предпологал
Bogdan
что очень логично, так как аккаунты часто угоняют через кукис
Bogdan
и там пароль не требуется))вот чтобы предотвратить они и спрашивают пароль
Anton
Bogdan
Anton
но не думаю что статичные прокси безопаснее мобильных использовать
Bogdan
либо рекавери эмейл
Anton
либо рекавери эмейл
рекавери тоже привязывал, но его почему-то не спрашивает. Рекавери нужно было подтверждать по почте?
Bogdan
ну мобильные прокси с десктоп устройства это подозрительно
Bogdan
Bogdan
Bogdan
не заюзанное если берешь с крутым рейтом то он пропускает без телефона
Anton
Но по сути должен спрашивать как подтвердить по рекавери или телефону, а он сразу телефон просит. Странно
Bogdan
User
Разъясните подробно процесс, как и что работает: ReCaptcha v3 c Callback-функцией для отправки токена на сайт. Не совсем понятен механизм и как всё это дело отловить, чтобы решить капчу. Без Callback без проблем решается капча, sitekey отправляется и после решения токен вставляется на страницу, а с Callback, что-то не понятен механизм.
Sergey
Привет всем! Есть, кто монетизирует свои парсеры уже некоторое время или продает как услугу? Справляется дли nodejs, когда нужно парсить тысячи страниц в реал-тайме и регулярно?
gud3
Sergey
Bogdan
ну и в докер а дальше k8s или лучше docker-swarm (он легче и функционала для этой задачи за глаза) это все закинуть.
Bogdan
Bogdan
у меня на Elixir такой кравлер написан лично, он и с headless работает и с http
Bogdan
просто в Elixir с конкурентностью все хорошо. На Go тоже наверное можно собрать монстра.
Bogdan
нода хорошо начинает но потом у нее колпак течет в определенный момент https://stressgrid.com/blog/benchmarking_go_vs_node_vs_elixir/
Bogdan
хотя если через docker-swarm наклепать инстансов и подрубить к кролику то это решит проблему