🦋noteee
Капча тиктока
Kila
Как я могу подвинуть данный слайдер вправо? Или просто указать ему координаты?
Поигратьсч с классами реакт драгабла, позишнем Доку чекни этой либы
Kila
Как называется либа для реакта?
react-draggable (чекай классы этого diva)
~Ghaith
эй, у меня проблема с обходом «Cloudflare WAF». Вы рекомендуете какое-нибудь решение?
𝙺𝚒𝚛𝚒𝚕𝚕 𝙽𝚊𝚜
Добрый, есть рабочий проект на ноде, надо перенести на другой ак на том же хостере. а лезет какая то хрень из модулей. я новичек, не пинайте за офтоп, научите, в долгу не останусь.) пишите в личку.
Anonymous
Всем привет. ребята,подскажите пожалуйста, есть ли готовые решения на основе Puppeeteer и web сервера например, что бы при запуске web сервера создавалось окно браузера, идалее можно было посылать на него запросы для управления этим окном (выполнения команд puppetter)?
Anonymous
основная цель это написать скрипт автоматизации, при этом не закрывая постоянно окно браузера и не создавая по новой (работая в одном окне постоянном)
Alhimik
Всем привет. ребята,подскажите пожалуйста, есть ли готовые решения на основе Puppeeteer и web сервера например, что бы при запуске web сервера создавалось окно браузера, идалее можно было посылать на него запросы для управления этим окном (выполнения команд puppetter)?
Готового решения не видел. Но если достаточно просто выполнять код в контексте pptr, то довольно просто реализуется. Я делал как-то так: 1. Один хэндлер запускает браузер /api/v1/Browser/start и ссылку на запущенный экземпляр кладёт в массив/хэшмапу 2. Второй хэндлер /api/v1/Browser/evaluate принимает id браузера и code для выполнения и через обычный eval выполняет: const { id, code } = req.body; if (!this.store.bots[id]) { throw new Error(`bot #${id} not started`); } const bot = this.store.bots[id]; const page = bot.page; let execute = async function() { return "DEFAULT_FUNCTION_EXECUTE"; }; eval(`execute = async function() {\n\n${code}\n\n};`); return res.json({ status: "OK", result: await execute(), }); 3. Закрывает страницы и останавливает браузер /api/v1/Browser/stop Ну и для написания и выполнения кода создал простой UI и добавил туда monaco-editor (подстветка синтаксиса и т.п.).
WADIM
парни, может кто подказать, почему нету клавиши "Spase"?
WADIM
WADIM
Может, Space?
Неа, вообще нету, работает только если прям строку прописать "Space"
Андрей
Всем привет! Как выбрать и сделать клик по этой кнопке? Как написать Selector?
Alhimik
Всем привет! Как выбрать и сделать клик по этой кнопке? Как написать Selector?
Зависит от окружающего контекста. От того, насколько стабильные идентификаторы при разных условиях. Самое простое это когда есть ID у элемента. Так как они обычно уникальные на странице. Если нет у самого элемента, ищи такой ID у родителя. Или комбинацией классов можно подобрать подходящий селектор.
Alhimik
Например так, если всегда нужно кликать на кнопку в этой ячейке: //td[@id = 'datepicker-57-2723-19']/button Но, судя по названию, элементы будут меняться. Так что нужно выбрать подходящий для конкретно твоего случая способ.
Андрей
Что то типа //td[@id = 'datepicker*']/button
Alhimik
Если это XPath. В CSS-селекторе посмотри примеры, там тоже можно.
Alhimik
a[href^='/'] //a[starts-with(@href, '/')]
Alhimik
Вот аналог.
Андрей
Благодарю 🙏 Сейчас проверю
Shieldy
(8 + 8) @jumas_cola, please, send the solution to the arithmetic operation provided within the time amount specified to this group, otherwise you will be kicked. Thank you! (60 sec) Powered by 1inch Network
Jumas
Доброго времени суток. Хочу сделать сервис для создания скриншотов по ссылке, возникла проблема с некоторыми сайтами, в частности (ответ на скрине): https://shop.mts.ru/product/chasy-samsung-galaxy-watch-4-44-mm-serebro-sm-r870nzsacis Как сайт понимает, что браузер контролируется через драйвер, причём даже в НЕ headless режиме? Использую puppeteer с плагином puppeteer-extra-plugin-stealth, нифига не помогло.
Eugene
Привет! Ребят, писал кто-то автоматизации для Linkedin и может проконсультировать?
Jumas
Ты сразу переходишь по этой ссылке?
Да, по прямой ссылке перехожу. Там Qrator стоит, сначала открывается страница с js проверками и только потом уже открывается основной контент.
Jumas
В браузере открывается норм, но через драйвер всегда возвращает 403.
WADIM
Подскажите пожалуйста, умеет ли пупитр открывать расширения типа метамаска?
Jumas
Playwright используй в нем открывается ок
Пробовал. В playwright shop.mts.ru тоже кидает 403. Если к вас получилось, можете пожалуйста скинуть настройки браузера, с которыми запускали.
Андрей
Я firefox
Jumas
Я firefox
Попробую, спасибо
Андрей
И нужно начинать с shop.mts.ru и прокликивать до ссылки чтобы куки собрать
Андрей
ghost cursor тоже использовал
urtblw
Помогите пожалуйста, мб есть инструкция, как законектится с уже открытой вкладкой
urtblw
const puppeteer = require("puppeteer"); (async () => { const browser = await puppeteer.launch({ headless: false }); const pages = await browser.pages(); const page = pages[0]; await page.goto("https://www.example.com"); async function idle(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } await page.click("body > div > p:nth-child(3) > a"); await idle(10000); // Закрытие браузера await browser.close(); })();
urtblw
Подскажите пожалуйста,сайт подгружает долго поэтому нужен коннект с уже подгруженным сайтом
Dmitry
Всем привет. Подскажите по потреблению памяти, может кто изучал вопрос или сталкивался. Написал парсер рсс новостей на электроне, использую firefox в безголовом режиме, подключил puppeteer-cluster. Скрипт простой - три десятка строк, но памяти отжирает прилично, на 20 ссылок - 800м примерно, на 100 ссылок, там уже потребление под 3-5 гб. Есть какой-нибудь метод снизить потребление оперативки? или это в целом нормальное потребление?
Dmitry
Сделать на post get запросах!
Есть нюансы, сайты залочены ркн, попадаем на сайт через веб проски (выбор веб прокси тоже из-за определенных блокировок портов), который открываем через puppeter
Андрей
Прокси и в Африке прокси! Запросы должны работать
Aleksey
Прокси и в Африке прокси! Запросы должны работать
Тока если на сайте системы защиты нет нетривиальной, которая необходимые для запросов куки прям через js вставляет.
Андрей
А вообще puppeteer много жрет. Я на playwright перехожу И стабильнее работает то что на puppeteer глучило
Dmitry
Прокси и в Африке прокси! Запросы должны работать
У нас не Африка, политика безопасности у админов вполне конкретная, не позволяет делать никакие запросы кроме 80, 443,8080 портов
Aleksey
У нас не Африка, политика безопасности у админов вполне конкретная, не позволяет делать никакие запросы кроме 80, 443,8080 портов
Так и что это меняет? Ты через браузер те же самые запросы делаешь, что и ручками через httprequest
Aleksey
Из ноды, cors политику никто не отменял
Корс политика - это фича браузера, она к ноде не имеет никакого отношения
Null
Всем привет. Подскажите по потреблению памяти, может кто изучал вопрос или сталкивался. Написал парсер рсс новостей на электроне, использую firefox в безголовом режиме, подключил puppeteer-cluster. Скрипт простой - три десятка строк, но памяти отжирает прилично, на 20 ссылок - 800м примерно, на 100 ссылок, там уже потребление под 3-5 гб. Есть какой-нибудь метод снизить потребление оперативки? или это в целом нормальное потребление?
Как и написали выше, похоже ты используешь инструмент не для тех задач. Поэтому лучше переписать на обычные запросы такое. Но, даже если других вариантов нет и нужно всё же использовать браузер, то проверь утечки памяти в своём коде для начала. У меня некоторые браузеры работают буквально по месяцу и никаких утечек не наблюдаю. Но для минимизации проблем лучше всё же перезапускать браузер периодически. Это не так много времени занимает, но может избавить от некоторых проблем.
Null
Всем привет. Подскажите по потреблению памяти, может кто изучал вопрос или сталкивался. Написал парсер рсс новостей на электроне, использую firefox в безголовом режиме, подключил puppeteer-cluster. Скрипт простой - три десятка строк, но памяти отжирает прилично, на 20 ссылок - 800м примерно, на 100 ссылок, там уже потребление под 3-5 гб. Есть какой-нибудь метод снизить потребление оперативки? или это в целом нормальное потребление?
Не понятно что значит "20 ссылок", они открываются одновременно или в одной и той же вкладке последовательно? Покажи больше кода. Или если код показать не можешь, скажи, закрываешь ли ты вкладки после использования, если это параллельные процессы? И есть ли обработка ошибок с последующим закрытием/переиспользованием вкладок?
Null
Подскажите пожалуйста,сайт подгружает долго поэтому нужен коннект с уже подгруженным сайтом
Не понятен вопрос. Если сайт уже загружен, просто выполняй команды без выполнения page.goto().
Dmitry
Как и написали выше, похоже ты используешь инструмент не для тех задач. Поэтому лучше переписать на обычные запросы такое. Но, даже если других вариантов нет и нужно всё же использовать браузер, то проверь утечки памяти в своём коде для начала. У меня некоторые браузеры работают буквально по месяцу и никаких утечек не наблюдаю. Но для минимизации проблем лучше всё же перезапускать браузер периодически. Это не так много времени занимает, но может избавить от некоторых проблем.
Спасибо за советы. Прямые запросы попробовал - есть технические ограничения, описаны выше + хотят решение нахаляву и стабильное (вебпрокси вполне удовлетворяют этому решению). Вопрос звучал не в целесообразности применения либы, а в уменьшении затрат памяти, предлагаю от этого и отталкиваться. Если считаете что взял инструмент не для парсинга, извиняюсь что отвлек. Puppeteer-cluster запускает одновременно по 4 страницы, и сам закрывает страницы в конце таски, по окончании очереди и закрывает инстанс браузера. По идее память высвобождается и +- в процессе стоит одной отметке, но ее количество на бОльших объемах растет пропорционально, что сильно огорчает. Попробую поставить интерсептор на запрос и поискать учтечки, буду в этом направлении копать
Null
Всем привет. Подскажите по потреблению памяти, может кто изучал вопрос или сталкивался. Написал парсер рсс новостей на электроне, использую firefox в безголовом режиме, подключил puppeteer-cluster. Скрипт простой - три десятка строк, но памяти отжирает прилично, на 20 ссылок - 800м примерно, на 100 ссылок, там уже потребление под 3-5 гб. Есть какой-нибудь метод снизить потребление оперативки? или это в целом нормальное потребление?
> или это в целом нормальное потребление? Нет, это не нормально в общем. Если конкретный сайт не потребляет столько ресурсов, то такого не должно быть. При закрытии вкладки выделенная память должна освобождаться. Не должно быть никакого накопительного эффекта от запуска 20 или 100 вкладок.
Null
Спасибо за советы. Прямые запросы попробовал - есть технические ограничения, описаны выше + хотят решение нахаляву и стабильное (вебпрокси вполне удовлетворяют этому решению). Вопрос звучал не в целесообразности применения либы, а в уменьшении затрат памяти, предлагаю от этого и отталкиваться. Если считаете что взял инструмент не для парсинга, извиняюсь что отвлек. Puppeteer-cluster запускает одновременно по 4 страницы, и сам закрывает страницы в конце таски, по окончании очереди и закрывает инстанс браузера. По идее память высвобождается и +- в процессе стоит одной отметке, но ее количество на бОльших объемах растет пропорционально, что сильно огорчает. Попробую поставить интерсептор на запрос и поискать учтечки, буду в этом направлении копать
Не использовал раньше puppeteer-cluster, но провёл несколько тестов. Прогнал 1000 ссылок в 4 потока. Chrome: в среднем 800 Мб потребление памяти, иногда были всплески до 1.2 Гб. Падений основного процесса не было. Firefox: в среднем так же около 800 Мб потребление памяти, всплески чаще и доходили до 1.8 Гб. Основной процесс падал неоднократно. Firefox в реальных задачах раньше не использовал, так что не знаю насколько он стабилен обычно. Но судя по этим тестам он менее стабилен чем chrome.
Null
Всем привет. Подскажите по потреблению памяти, может кто изучал вопрос или сталкивался. Написал парсер рсс новостей на электроне, использую firefox в безголовом режиме, подключил puppeteer-cluster. Скрипт простой - три десятка строк, но памяти отжирает прилично, на 20 ссылок - 800м примерно, на 100 ссылок, там уже потребление под 3-5 гб. Есть какой-нибудь метод снизить потребление оперативки? или это в целом нормальное потребление?
> потребление под 3-5 гб Скинь ссылку на сайт, я попробую проверить у себя. Если сайт скинуть не можешь по какой-то причине, то для начала, предлагаю узнать какой именно процесс потребляет столько памяти. Основной процесс браузера или процесс конкретной вкладки. А дальше уже изолированно с проблемой работать. Ну и если есть возможность, проверь как это работает в chrome.
Андрей
Всем привет! Как сделать селектор и кликнуть по этому элементу
Андрей
WADIM
Через xPath, по тексту можно
Андрей
Как по тексту span выбрать?
WADIM
//span[text() = 'Разрещить все куки'']
WADIM
Ну только твой текст
WADIM
Через contains можно и на англ подобрать
WADIM
Ну и я не силен в js, на шарпе раьаотаю, там скорее всего у тебя будет метод что-то типа XPathAsynk()
𝕁𝕊𝕆𝕌𝕎𝕃
Добрый день OC: debian 11 Node: v18.17.1 npm: v9.6.7 Как можно прокси настроить? Я по всякому пытался, и через аргументы запуска, и через аргумента запуска с page.authorize, и через puppeteer-proxy, и через puppeteer-page-proxy - всё бестолку. Прокси резидентские, вида http://username:password@ip:port. Запускается пюпитир с headless: "new"
D
Друзья пупитерщики) кто-то ищет подработку? Есть проект на node.js + puppeteer + octo browser. Ищу надежного разраба в команду, оплата почасовая.