D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Автор: Leonid Filatov
Эксклюзивно для форума: xss.is
Часть: [1/2]
Спойлер: Мои другие статьи по OB2
Ссылка на первую статью: xss.is/threads/125338/
Ссылка на вторую статью: xss.is/threads/125492/
Ссылка на третью статью: xss.is/threads/125906/
Предисловие.
Приветствую, путник! В конце третьей статьи по работе с OpenBullet 2 я уже упоминал, что в следующих уроках мы перейдём от создания конфигов на основе POST/GET запросов к разработке скриптов с использованием эмуляции браузера. Что ж, этот момент настал!
Если вы ещё не ознакомились с моими предыдущими статьями, то ссылки находятся вверху. Настоятельно рекомендую их прочитать, чтобы вообще понимать, о чём здесь идёт речь.
В этой вводной статье начнем с небольшого погружения в теорию и настроим OpenBullet 2 для работы с одним из популярных фреймворков для автоматизации браузера Chrome - Puppeteer. А уже в следующих статьях мы перейдем к созданию нашего первого скрипта.
На данный момент, по моему мнению, для автоматизации браузеров без знания кода в 2024-2025 году лучше всего подходит BAS (Browser Automation Studio), так как он предоставляет больше возможностей для построения логики скрипта. В нём проще обрабатывать ошибки, и для BAS существует очень большое количество пользовательских модулей, которые значительно помогают при разработке. В OpenBullet 2 такого широкого спектра возможностей нет (ИМХО). Однако, поскольку я уже начал цикл статей именно по OpenBullet 2, считаю своим долгом его завершить!
Статьи по разработке скриптов с помощью BAS я планирую написать после того, как мы закончим с OpenBullet 2 (а это будет уже скоро), так как у вас уже будут базовые навыки в автоматизации.
О автоматизации антидетект-браузеров без навыков программирования с помощью BAS мы тоже поговорим, но, опять же, это будет темой отдельного цикла статей.
Для людей с опытом в программировании:
На этом этапе придётсядобавить немного теории налить воды, чтобы у новичков сложилось общее понимание того, что мы собираемся делать и с помощью каких инструментов. Ведь я не хочу, чтобы вы просто бездумно нажимали на кнопки. Я хочу, чтобы вы понимали суть того, что мы делаем.
Браузерная автоматизация и HTTP-запросы: в чем разница?
Раздел "RL Settings":
Настройка конфига:
Добавляем очистку куки:
Открываем страницу XSS.IS:
Тестируем скрипт:
На этом настройка завершена!
Я бы рекомендовал вам просто зайти и посмотреть какие ещё возможности предлагает Puppeteer в OB2, потыкайте, попробуйте составить свой простенький скрипт, там очень много функций.
В следующей статье мы будем уже делать полноценный скрипт, который будет вводить логин и пароль, авторизоваться на сайте и т.д, но целью будет выступать не наш любимый форум
.
Эксклюзивно для форума: xss.is
Часть: [1/2]
Спойлер: Мои другие статьи по OB2
Ссылка на первую статью: xss.is/threads/125338/
Ссылка на вторую статью: xss.is/threads/125492/
Ссылка на третью статью: xss.is/threads/125906/
Предисловие.
Приветствую, путник! В конце третьей статьи по работе с OpenBullet 2 я уже упоминал, что в следующих уроках мы перейдём от создания конфигов на основе POST/GET запросов к разработке скриптов с использованием эмуляции браузера. Что ж, этот момент настал!
Если вы ещё не ознакомились с моими предыдущими статьями, то ссылки находятся вверху. Настоятельно рекомендую их прочитать, чтобы вообще понимать, о чём здесь идёт речь.
В этой вводной статье начнем с небольшого погружения в теорию и настроим OpenBullet 2 для работы с одним из популярных фреймворков для автоматизации браузера Chrome - Puppeteer. А уже в следующих статьях мы перейдем к созданию нашего первого скрипта.
На данный момент, по моему мнению, для автоматизации браузеров без знания кода в 2024-2025 году лучше всего подходит BAS (Browser Automation Studio), так как он предоставляет больше возможностей для построения логики скрипта. В нём проще обрабатывать ошибки, и для BAS существует очень большое количество пользовательских модулей, которые значительно помогают при разработке. В OpenBullet 2 такого широкого спектра возможностей нет (ИМХО). Однако, поскольку я уже начал цикл статей именно по OpenBullet 2, считаю своим долгом его завершить!
Статьи по разработке скриптов с помощью BAS я планирую написать после того, как мы закончим с OpenBullet 2 (а это будет уже скоро), так как у вас уже будут базовые навыки в автоматизации.
О автоматизации антидетект-браузеров без навыков программирования с помощью BAS мы тоже поговорим, но, опять же, это будет темой отдельного цикла статей.
Для людей с опытом в программировании:
Напомню, что в этом цикле статей мы разбираем только NO-CODE решения, что идеально подходит для большинства новичков.
Но если вы уже «big boy» и владеете каким-либо языком программирования, например, Python, то лучше сразу переходите к изучению Playwright и используйте антидетект-библиотеки, которые можно найти здесь: GitHub - untidetect-tools в разделе "Anti-detect libs". Или же автоматизируйте работу антидетект-браузеров через их API с помощью Playwright.
Нажмите, чтобы раскрыть...
Этап 0. Термины и теория.
На этом этапе придётся
Браузерная автоматизация и HTTP-запросы: в чем разница?
- Скрипты для автоматизации браузеров работают как полноценный браузер под руководством бота: они загружают страницы, выполняют JavaScript и могут взаимодействовать с динамическими элементами. По сути, такой скрипт «ходит» по сайтам, кликает на нужные элементы, вводит текст в поля - в общем, действует как настоящий пользователь. Для работы с элементами страницы при разработке скрипта мы будем использовать XPATH, с помощью которого мы указываем, на какой элемент ему нужно нажать или в какое поле ввести текст. Если вы читали мои предыдущие статьи, то уже знакомы с понятием XPATH.
- А вот скрипты, использующие HTTP-запросы, работают иначе: они взаимодействуют с сервером напрямую, без загрузки страниц и выполнения JavaScript. Это означает, что их возможности ограничены, особенно когда нужно работать с динамическим контентом на современных веб-сайтах.
- У некоторых людей, наверняка, возник вопрос: что же лучше выбрать? На собственном опыте могу сказать так: если вам нужен максимально быстрый скрипт, который почти не расходует трафик (особенно если у вас прокси с оплатой за ГБ), и вы планируете проверять большие объемы данных (например, миллионы строк), тогда однозначно стоит рассмотреть софт на HTTP-запросах.
- Но если вам пока не хватает опыта для создания скрипта на HTTP-запросах, например, если сайт защищен Akamai или требует много усилий для извлечения нужного токена, - тогда проще использовать автоматизацию браузера. Бывает, что нужно обработать около 5000 - 10000 строк из логов - вроде немного, но вручную это займет кучу времени, а написать HTTP-скрипт из-за защиты сайта может быть непросто. Именно здесь на помощь приходит автоматизация браузера: можно создать многопоточного бота, который будет заходить на целевой сайт и выполнять нужные действия - вход в аккаунт, сбор данных из личного кабинета, или же авторегистрацию аккаунтов и т.д.
- Сначала всегда пробуйте реализовать задачу на основе HTTP запросов, но если быстро не получится и вы поймёте, что знаний не хватает, то переходите к использованию эмуляции. Как говорится, "не можешь сходить в туалет - не мучай попу".
- Puppeteer - это фреймворк для автоматизации браузера Google Chrome. Puppeteer взаимодействует с браузером напрямую через встроенный протокол Chrome DevTools Protocol. Это упрощает настройку и ускоряет процесс автоматизации. В отличие от фреймворка Selenium, который требует установки дополнительного драйвера ChromeDriver, который всегда нужно поддерживать в актуальной версии.
- С помощью Puppeteer мы можем программно открывать страницы, кликать на элементы, вводить текст в поля и выполнять другие действия, словно мы сами работаем в браузере, но без необходимости глубоких знаний в программировании.
Этап 1. Настройка OpenBullet 2 для работы с Puppeteer.
С теорией вроде разобрались, теперь немного практики. Теперь давайте настроим наш OB2 для дальнейшей работы.
Раздел "RL Settings":
- Качаем актуальную версию Google Chrome.
- Открываем OB2 и заходим в раздел "RL Settings".
- Листаем в самый низ и видим раздел "Puppeteer".
- Вводим путь до файла Chrome.exe (НЕ ДО ЯРЛЫКА). Если вы установили по стандартному пути, то там уже будет всё стоять по умолчанию.
- Жмём "Save" в самом низу.
Настройка конфига:
- Создаём конфиг. (Если не знаете как, то что вы тут вообще забыли?! Читайте первые три статьи!)
- Заходим в Configs -> Settings и выполняем все те настройки, которые мы делали во второй статье.
- Но в этот раз у нас добавится ещё одна дополнительная настройка. Спускаемя в самый низ и видим пункт "Puppeteer".
- Сейчас здесь установлены стандартные настройки, но давайте разберёмся, за что отвечает каждый пункт и выставим нужные нам значения.
- Quit the browser when the bot ends with one of these statuses - Определяет, при каких итогах работы бот должен закрыть браузер. Например, если задача выполнена успешно (SUCCESS), произошла ошибка (ERROR), бот получил блокировку (BAN) или завершился неудачей (FAIL). Это позволяет освобождать ресурсы и предотвращает появление "висящих процессов" браузера.
- Headless mode - Запускает браузер в скрытом режиме без графического интерфейса (т.е. окно браузера не будет открываться, и вы не увидите, куда кликает скрипт и т.п.). Это ускоряет выполнение скрипта и экономит системные ресурсы. Однако некоторые сайты могут распознавать режим headless и блокировать доступ, поэтому его иногда нужно отключать, а также лучше отключать этот режим во время разработки скрипта.
- Load only document and script - Загружает только HTML-документ и JavaScript страницы, игнорируя такие ресурсы, как изображения, стили (CSS), шрифты и видео. Это ускоряет загрузку страницы и уменьшает сетевую нагрузку, что полезно, если вам нужны только данные, а не оформление страницы.
- Dismiss dialogs - Автоматически закрывает всплывающие окна и диалоги на сайте (например, запросы подтверждения или сообщения). Это полезно, если такие окна мешают автоматизации, но если скрипт должен с ними взаимодействовать, лучше оставить эту опцию выключенной.
- Command line arguments - Google Chrome поддерживает специальные команды (флаги), которые позволяют гибко настраивать его поведение под нужды автоматизации. В поле Command line arguments можно вводить такие команды, чтобы, например, отключить уведомления, выключить песочницу для работы на VPS, оптимизировать производительность или игнорировать ошибки сертификатов. Например:
--disable-notifications - отключает всплывающие уведомления на сайте.
--window-size=1920,1080 - устанавливает размер окна браузера на 1920x1080 пикселей.
Нажмите, чтобы раскрыть...
Ознакомиться со списком ВСЕХ спец. комманд можете здесь - peter.sh/experiments/chromium-command-line-switches/
Нажмите, чтобы раскрыть...
- Ignore HTTPS errors - Позволяет игнорировать ошибки безопасности, связанные с HTTPS-сертификатами на сайте. Полезно для работы с сайтами, у которых нет действительных SSL сертификатов.
- Для OpenBullet 2 существуют два варианта настроек Puppeteer - для запуска на стационарном ПК и на VPS. Давайте разберём для каждой ситуации:
- Переносим FAIL, BAN, ERROR в зелёную колонку. (Жмем ПКМ). (SUCCESS не переносим в зелёную колонку, потому что этот вариант разивития событий мы будем обрабатывать в ручную. То есть браузер будет закрываться только после того, как скрипт спарсил информацию которая нам нужна)
- На время разработки скрипта выключаем "Headless mode".
- Переносим FAIL, BAN, ERROR в зелёную колонку. (Жмем ПКМ). (SUCCESS не переносим в зелёную колонку, потому что этот вариант разивития событий мы будем обрабатывать в ручную. То есть браузер будет закрываться только после того, как скрипт спарсил информацию которая нам нужна)
- На время разработки скрипта выключаем "Headless mode".
- В поле "Command line arguments" вводим дополнительно "--no-sandbox". - Что делает эта команда можете найти в интернете, но по своему опыту могу сказать, что без неё на VPS мы получим вот такую ошибку при запуске браузера:
- После того, как применили все настройки, то возвращаемся обратно в "Stacker", где мы сейчас проверим работает ли Puppeteer.
Этап 3. Проверка работоспособности Puppeteer.
Теперь давайте сделаем простенький скрипт из трёх кубиков, который будет:
- Запускать экземпляр браузера Chrome.
- Очищать все куки. - Рекомендуется добавлять этот блок в начале каждого скрипта, это поможет экономить память и снизит вероятность возникновения конфликтов.
- Открывать главную страницу XSS.IS.
- Нажимаем на плюсик, заходим в раздел "Puppeteer".
- Заходим в раздел "Browser".
- Выбираем действие "Open Browser"
Добавляем очистку куки:
- Нажимаем на плюсик, заходим в раздел "Puppeteer".
- Заходим в раздел "Page".
- Выбираем действие "Clear Cookies".
Открываем страницу XSS.IS:
- Нажимаем на плюсик, заходим в раздел "Puppeteer".
- Заходим в раздел "Page".
- Выбираем действие "Navigate to".
- В настройках действия "Navigate to" в поле URL вводим нужную нам ссылку, а именно: "https://xss.is"
Тестируем скрипт:
- Нажимаем кнопку "Start" и видим, что скрипт открыл целевой сайт:
На этом настройка завершена!
Подводим итоги.
Сегодня мы настроили OpenBullet 2 для работы с Puppeteer и освоили базовые шаги по автоматизации браузера.
Я бы рекомендовал вам просто зайти и посмотреть какие ещё возможности предлагает Puppeteer в OB2, потыкайте, попробуйте составить свой простенький скрипт, там очень много функций.
В следующей статье мы будем уже делать полноценный скрипт, который будет вводить логин и пароль, авторизоваться на сайте и т.д, но целью будет выступать не наш любимый форум