@alexrahvalov/browser-automation v3.0.0
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