👨💻
о, прогресс есть. Поставил таймат, перестало вылетать
👨💻
походу значит нода забогавалась, потому что либу еще вчера переустанавливал много раз
Null
👨💻
Null
Null
Вообще конечно странно что он по дефолту замалчивает ошибки, мог хотя бы после выполнения всех задач сообщать что было столько-то ошибок.
👨💻
Null
👨💻
👨💻
👨💻
Null
Т.е. у тебя был tr/catch. Ну тогда ок. Просто такой дизайн у либы - закрыть вкладку по таймауту. Наверное в документации про это что-то должно быть. Т.е. проблемы никакой и не было. Просто ты не мог увидеть что он завершал страницу, пока не повесил хэндлер.
👨💻
Проблема в другом
👨💻
Либо не должна закрывать вкладку, пока выполняется задача. Пока идёт спрос на различные действия, но в моем случая либо тупо закрывает вкладку, когда там ещё 400-500 строчек кода должно выполняться
👨💻
Null
👨💻
То есть это кластер запускает какой-то механизм. То ли проверки чего-то, то ли ещё чего.
Механизм ждёт 30 сек и улетает в небытие вместе со страницей, выкидывая ошибку на конкретную страницу
👨💻
То есть этот механизм при конкуренси_page, выкидывает именно из конкреткой страницы
👨💻
Мне ща проще закоментить эту ошибку в Либе и жить спокойно
Null
Null
👨💻
Зачем? Есть же таймаут. Он прекрасно работает.
Но это костыль какой-то. До этого ведь работало без timeout. То есть скрипт выполнялся, браузер был на своем месте и только когда он в idle переходил, уже затем закрывался. Но это как раз нормальная работа была
👨💻
👨💻
Null
я всегда тоже проблему вижу всегда в своем коде, но когда ты нажимаешь только на 1 кнопку - выполнит ьскрипт и больше ничего, потому что он полностью доделан, то других вариантов у меня попросту нет)
async function idle(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function timeoutExecute(millis, promise) {
let timerId = null;
const result = await Promise.race([
(async () => {
await new Promise((resolve) => {
timerId = setTimeout(resolve, millis);
});
throw new Error(`Timeout hit: ${millis}`);
})(),
(async () => {
try {
return await promise;
} catch (error) {
// Cancel timeout in error case
clearTimeout(timerId);
throw error;
}
})(),
]);
clearTimeout(timerId); // is there a better way?
return result;
}
async function task() {
console.log("Run task...");
await idle(60 * 60 * 10000);
console.log("Task done.");
}
async function main() {
console.log("Start...");
let result = null;
const timeout = 30 * 1000;
try {
result = await timeoutExecute(
timeout,
task(),
);
} catch (err) {
console.error("[MAIN CATCH]", err);
}
console.log("Close page!");
console.log({ result });
}
main();
Null
Вот как у него это работает. Ты в данном примере можешь влиять только на функцию task. Насколько я вижу ты не можешь никак удержать поток выполнения от закрытия вкладки. Т.е. я не вижу как без таймаута могло работать.
Null
Только изменив timeout можно защититься от закрытия.
👨💻
)
👨💻
снова не помогает этот таймout. У меня вновь страница закрывается
Null
👨💻
можем созвониться ? я покажу быстрее вживую
Null
Т.е. сам код не обязателен. Важны хэндлеры на ошибки и убедиться что ошибок нет.
👨💻
их нет, в этом и прикол
👨💻
ща запишу
👨💻
а кому писать ?)
вроде как от канала пишешь, или от группы
👨💻
корчое это фиаско. У меня еще более лютый треш начал происходить
Eugene
Привет. Ребят, кто-то парсил pinterest, similarweb, ahrefs? Готов купить решения
D
Гайз, помогите плз реализовать нажатие на поиск в гугле в мобильном браузере. Я так понимаю что нет зависимости нажатия кнопки Enter на дескотопе с мобильным браузером, потому что у меня это не работает. А словить лупу, которая появляется снизу под полем поиска напротив ключа не получается ...
Aleksandr
почему может возникать во время ожидания действия
Aleksandr
TimeoutError: Timed out after waiting 30000ms
Aleksandr
где этот параметр указан
Верет
страница не прогрузилась скорее всего(могу ошибаться)
Aleksandr
Получается жду код который приходит дольше 30 секунд
Ekaterina
Привет! У меня тоже возникает ошибка TimeoutError: Timed out after waiting 30000ms
Причем первый раз скрипт отработал, при последующих запусках выдает эту ошибку, никаких изменений не вносила
Может у кого-то получалось побороть проблему?
Jumas
CTapbIu_Dedd
приветствую, может кто подсказать как обойти защиту от парсера в dns-shop.ru, все время возвращает страницу 403?
Anonymous
приветствую, может кто подсказать как обойти защиту от парсера в dns-shop.ru, все время возвращает страницу 403?
надо, чтобы вами управляемый бразуер через puppeteer был максимально человечным, много факторов, от настроек запуска браузера, до прокси.
Сравните показатели вами управляемого браузера и лично вами используемого в повседневной жизни бразуера по следующим сайтам:
https://pixelscan.net/
http://witch.valdikss.org.ru/
https://whoer.net/ru#extended
https://iphey.com/
https://abrahamjuliot.github.io/creepjs/
https://ipleak.com/full-report/
https://user-agent-client-hints.glitch.me
https://bot.incolumitas.com
точите указываемы у вас "проблемы", улучшайте индекс человечности.
Ещё помогает - оформите себе recaptcha3 которая невидимая, поставьте на любую вами контролируемую страницу и сравните токен человечности под puppeteer и личного браузера.
CTapbIu_Dedd
Anonymous
Привет все выходные бился не смог, нету кого-нибудь примера похожего, я бы глянул .
берёшь одну задачу (например, webrtc) и ищешь решение интернете и на github, находишь, делаешь, проверяешь и к следующей.
Например, время у тебя соответствует временному поясу прокси?
готового полноценно настроенного браузера с высоким уровнем человечности - я не видел.
Если проект не надо запихивать на сервер, в докер, а можно запускать на десктопе, то можно попробовать поставить антидетект браузер, например, dolphin-anty который уже весь антидетект, он умеет есессно быть управляемым, т.е. puppeteer к нему и это наверняка упростит решение
CTapbIu_Dedd
берёшь одну задачу (например, webrtc) и ищешь решение интернете и на github, находишь, делаешь, проверяешь и к следующей.
Например, время у тебя соответствует временному поясу прокси?
готового полноценно настроенного браузера с высоким уровнем человечности - я не видел.
Если проект не надо запихивать на сервер, в докер, а можно запускать на десктопе, то можно попробовать поставить антидетект браузер, например, dolphin-anty который уже весь антидетект, он умеет есессно быть управляемым, т.е. puppeteer к нему и это наверняка упростит решение
Ок спасибо
Bogdan
всем привет, есть какие-нибудь новые сервисы по капчам?
Babak
Hello guys.
I have a problem in doing mouse actions like:
page.mouse.move()
page.mouse.hover()
And other Mouse actions like this.
None of them working.
ISergey
Верет
Всем привет, написал код, в котором есть функция с puppeteer использованием, мне надо запустить ее многопоточно, для начала хотя бы в 2 потока, но при запуске, один браузер может сильно отставать от другого, вследствие чего может вылазить https error, not found selector и тд, кто знает как фиксить помогите пж
Aleksey
Всем привет, написал код, в котором есть функция с puppeteer использованием, мне надо запустить ее многопоточно, для начала хотя бы в 2 потока, но при запуске, один браузер может сильно отставать от другого, вследствие чего может вылазить https error, not found selector и тд, кто знает как фиксить помогите пж
для селектторов юзать .waitForXpath()
для многопоточности использовать что-то готовое, типа докер-образа browserless.io
Верет
Aleksey
через threading не выйдет?
хз, я локально браузер только для отладки использую очень редко, так что даже не пробовал, как по мне - лучше, чтобы он отдельным сервисом крутился с возможностью соединения по вебсокетам - так всем будет проще с ним работать
Верет
окей спасибо
Arun
Hi
Eugene
Ребята, какие есть тулы, чтобы дав линку на сайт со статьей могла забрать ее контент
Eugene
Без предварительной разметки статьи
Arun
Я использую Puppeteer в узле js и развернут в облачной функции Firebase, но получаю сообщение об ошибке.
это код, который я использую
const browser = await puppeteer.launch({
args: ["--no-sandbox", "--disable-setuid-sandbox"],
});
[PM] Owl 🦉
Всем привет! Ищем в команду с возможным удаленным сотрудничеством Node.js developer с опытом работы в автоматизациях Puppeteer/Playwright для продуктивного и совместного роста🔥
Если у вас есть похожий опыт либо вы знаете человека, который может нам подойти - пишите, пожалуста, в лс, я расскажу детали🙌
WADIM
Всем привет, ребят, подскажите пожалуйста, может есть какой-то аргумент для запуска браузера или как-то можно отобразить курсор, ставлю расширение внутри браузера для отображения курсора, но не удобно постоянно делать, а хотелось бы визуально наблюдать за двидением, спасибо
Null
Dima
Всем привет!
Не могу создать массив для итерации из результатов поиска в переменной searchResults. Использую Array.from(), только это не работает и resultsArray получается пустым. Как быть? Как я могу сконвертировать?
Dima
Dima
Null
Максим
Всем привет! Кто-нибудь сталкивался с проблемой, когда не выполняется переход по ссылке через goto, в адресной строке просто висит about:blank? Проблема плавающая, появляется не всегда
Dima
Null
Максим
Верет
не находит селектор скорее всего
Null
Страница не успела загрузиться за 30 секунд. Нужно увеличить таймаут или отключить его.