Package Exports
- @alexrahvalov/browser-automation
- @alexrahvalov/browser-automation/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@alexrahvalov/browser-automation) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Browser Automation Library
Библиотека для автоматизации браузера с использованием Puppeteer, с функциями антидетекта и имитации человеческого поведения.
Установка
npm install @alexrahvalov/browser-automation
или с Bun:
bun add @alexrahvalov/browser-automation
Возможности библиотеки
- 🌐 Полная поддержка браузеров Chrome и Firefox
- 🛡️ Встроенный антидетект режим
- 🧠 Имитация человеческого поведения при работе с браузером
- 🔄 Управление cookies и сессиями
- 📱 Эмуляция различных устройств и настройка User-Agent
- 🚀 Совместимость с Bun для максимальной производительности
Использование
import { BrowserLib } from '@alexrahvalov/browser-automation';
// Создание экземпляра с антидетект настройками
const browser = new BrowserLib('chrome', {
antiDetect: true, // Включаем антидетект режим
randomizeViewport: true // Случайный размер окна браузера
});
// Запуск браузера с расширенными настройками
await browser.init({
headless: false, // Показывать браузер
slowMo: 50, // Замедление действий для более реалистичного поведения
});
// Переход на сайт (автоматически добавит https:// если отсутствует)
// При этом автоматически имитируется человеческое поведение (скроллинг, движение мыши)
await browser.goto('example.com');
// Реалистичный ввод текста с имитацией человеческого поведения
await browser.type('#search', 'запрос для поиска', { humanLike: true });
// Реалистичный клик с имитацией движения мыши
await browser.click('#submit-button');
// Сохранение cookies для последующего использования
const cookies = await browser.saveCookies();
console.log('Cookies сохранены');
// Загрузка сохраненных cookies в другой сессии
await browser.loadCookies(cookies);
// Закрытие браузера
await browser.close();
API
Конструктор
constructor(browserType: 'chrome' | 'firefox' = 'chrome', options: BrowserOptions = {})
Методы
init(options?: BrowserOptions)
Инициализирует браузер с указанными опциями.
interface BrowserOptions {
headless?: boolean | 'shell';
defaultViewport?: {
width: number;
height: number;
} | null;
args?: string[];
timeout?: number;
slowMo?: number;
antiDetect?: boolean;
randomizeViewport?: boolean;
defaultHeaders?: Record<string, string>;
userAgent?: string | null;
}
goto(url: string, options?: { timeout?: number, waitUntil?: 'load' | 'domcontentloaded' | 'networkidle0' | 'networkidle2' })
Переходит на указанный URL (автоматически добавляет https:// если отсутствует) и имитирует человеческое поведение на странице.
getPage()
Возвращает объект страницы Puppeteer.
waitForSelector(selector: string, timeout?: number)
Ожидает появления элемента на странице.
click(selector: string, options?: { delay?: number, randomize?: boolean })
Кликает по элементу с имитацией человеческого поведения.
type(selector: string, text: string, options?: { delay?: number, humanLike?: boolean })
Вводит текст с имитацией человеческого ввода, включая случайные задержки и возможные опечатки.
randomDelay(min?: number, max?: number)
Выполняет случайную задержку между действиями.
screenshot(path: string)
Делает скриншот страницы.
saveCookies()
Сохраняет cookies текущей сессии.
loadCookies(cookies: CookieParam[])
Загружает cookies для текущей сессии.
evaluate(fn: () => T)
Выполняет JavaScript на странице.
close()
Закрывает браузер.
Антидетект функции
Библиотека включает следующие механизмы обхода обнаружения автоматизации:
- ✅ Скрытие флага
navigator.webdriver
- ✅ Эмуляция плагинов браузера
- ✅ Имитация аппаратных характеристик устройства
- ✅ Маскировка WebGL fingerprinting
- ✅ Случайные User-Agent и HTTP заголовки
- ✅ Реалистичные движения мыши и ввод с клавиатуры
- ✅ Имитация случайных задержек между действиями
- ✅ Реалистичная прокрутка страницы
Поддерживаемые браузеры
- Chrome (по умолчанию)
- Firefox
Требования
- Node.js >= 14.0.0
- Bun >= 1.0.0