@alexrahvalov/browser-automation
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

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

Package Sidebar

Install

npm i @alexrahvalov/browser-automation

Weekly Downloads

2

Version

3.0.0

License

ISC

Unpacked Size

90 kB

Total Files

11

Last publish

Collaborators

  • alexrahvalov