Главная / ИИ агент для программиста / ИИ агент для браузера

ИИ агент для браузера

Скрапинг, автоматизация, CSS-отладка и анализ производительности — агент поможет с любой браузерной задачей

2 ч/день экономит на рутине
Puppeteer Playwright, Selenium
15 мин готовый скрипт скрапинга

Знакомо?

🕸️
Скрапинг ломается каждую неделю
Сайт обновил вёрстку — селекторы перестали работать. Опять искать новые CSS-пути, опять тестировать. Каждый раз по часу.
🖥️
CSS работает в Chrome, ломается в Safari
Потратил 2 часа на идеальную вёрстку. Открыл в Safari — всё поехало. Firefox — тоже другой результат. Кроссбраузерность — ад.
🐢
Сайт тормозит и непонятно почему
Lighthouse показывает 45 баллов. Performance tab в DevTools — водопад из 200 запросов. Что оптимизировать первым — неясно.
🤖
Автоматизация — куча boilerplate
Нужно заполнить форму на 10 сайтах. Каждый раз — новые селекторы, задержки, обработка ошибок. На один сайт уходит полдня.

Реальные кейсы

1
Скрапинг каталога товаров с пагинацией
Аналитик Ольга собирала цены конкурентов вручную — 3 часа в неделю на 4 сайта. Агент помог написать скрипт на Playwright, который делает это за 10 минут.
Настройка
👤
Пользователь
Нужно парсить каталог электроники с сайта — название, цена, наличие. 12 категорий, по 20 страниц в каждой. Пагинация через кнопку «Показать ещё». Selenium знаю плохо, может есть что-то проще?
🤖
Агент
🔍 Для динамической пагинации рекомендую Playwright:

Преимущества перед Selenium:
• Встроенное ожидание элементов (не нужен sleep)
• Auto-wait: кликает когда кнопка реально кликабельна
• Быстрее в 2-3 раза
• Простой API на Python

Архитектура скрипта:
1. Открываем категорию → ждём загрузки карточек
2. Кликаем «Показать ещё» пока кнопка есть
3. Собираем все карточки через page.query_selector_all(".product-card")
4. Сохраняем в CSV
5. Переходим к следующей категории

Скинь URL или HTML-фрагмент карточки товара — напишу рабочий скрипт.
Ежедневное использование
👤
Пользователь
Вот HTML карточки: <div class="product-card"> <a class="product-card__title" href="/product/123">Смартфон Samsung Galaxy A54</a> <span class="product-card__price">29 990 ₽</span> <div class="product-card__status in-stock">В наличии</div> </div> Кнопка пагинации: <button class="catalog__load-more">Показать ещё</button>
🤖
Агент
✅ Скрипт готов (scraper.py, 48 строк):

from playwright.sync_api import sync_playwright
import csv

CATEGORIES = ["smartphones", "laptops", ...]

with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()

for cat in CATEGORIES:
page.goto(f"https://site.ru/catalog/{cat}")
while page.query_selector(".catalog__load-more"):
page.click(".catalog__load-more")
page.wait_for_load_state("networkidle")

cards = page.query_selector_all(".product-card")
for card in cards:
title = card.query_selector(".product-card__title").inner_text()
price = card.query_selector(".product-card__price").inner_text()
status = card.query_selector(".product-card__status").inner_text()
writer.writerow([title, price, status])


Установка: pip install playwright && playwright install chromium
Запуск: python scraper.py → файл products.csv
12 категорий × 20 страниц ≈ 8-10 минут.
2
Оптимизация производительности SPA
Фронтенд-разработчик Сергей получил задачу — поднять Lighthouse с 38 до 80+. Крупное React-приложение, 2.4 MB бандл. С агентом нашёл и исправил 5 проблем за день.
Настройка
👤
Пользователь
React SPA, Lighthouse Performance 38. Бандл 2.4 MB. Загрузка 6.8 секунд на 3G. Основные метрики: LCP 5.2s, FID 340ms, CLS 0.28. Что делать в первую очередь?
🤖
Агент
📊 Приоритизация по влиянию:

1. Бандл 2.4 MB — главная проблема (LCP 5.2s):
• Запусти npx webpack-bundle-analyzer — покажет что ест место
• Скорее всего: moment.js (300KB), lodash целиком (70KB), необработанные изображения

2. CLS 0.28 — layout shift:
• Изображения без width/height
• Шрифты загружаются с FOUT
• Динамический контент без skeleton

3. FID 340ms — тяжёлый JS при загрузке:
• React hydration блокирует main thread
• Нужен code splitting по роутам

Начни с webpack-bundle-analyzer и скинь скриншот — скажу что резать.
Ежедневное использование
👤
Пользователь
Вот топ-5 из bundle analyzer: moment.js 312KB, lodash 71KB, react-pdf 420KB, chart.js 180KB, @mui/icons-material 264KB. Из них react-pdf нужен только на одной странице.
🤖
Агент
✅ План оптимизации — экономия ~1.1 MB:

moment.js → dayjs: 312KB → 2KB (API совместим на 95%)
npm i dayjs && npx jscodeshift -t moment-to-dayjs src/

lodash → lodash-es + tree-shaking: 71KB → ~8KB
import { debounce } from "lodash-es" вместо import _ from "lodash"

react-pdf → lazy load: 420KB не грузится пока не нужен
const PDFViewer = React.lazy(() => import("./PDFViewer"))

@mui/icons → именованные импорты: 264KB → ~12KB
import DeleteIcon from "@mui/icons-material/Delete"

chart.js → tree-shakeable import:
import { Chart, LineController, ... } from "chart.js"
Chart.register(LineController, ...)


Итого: 2.4 MB → ~1.3 MB. LCP: 5.2s → ~2.5s. Lighthouse: 38 → 70-80.
3
Кроссбраузерная CSS-проблема
Верстальщик Вика потратила 4 часа на баг с flexbox в Safari. Списалась с агентом — решение нашлось за 10 минут.
Настройка
👤
Пользователь
Карточки товаров на flexbox. В Chrome — идеально, в Safari — последняя карточка в ряду растягивается на всю ширину. Firefox — карточки разной высоты. Вот CSS: .catalog { display: flex; flex-wrap: wrap; gap: 16px; } .card { flex: 1 1 calc(33.33% - 16px); min-width: 280px; }
🤖
Агент
🔍 Две отдельные проблемы:

Safari — растянутая последняя карточка:
flex: 1 1 calc(33.33% - 16px)flex-grow: 1 заставляет последний элемент занять всё свободное пространство.
Исправление: flex: 0 1 calc(33.33% - 16px) — запретить рост.

Firefox — разная высота:
Firefox считает gap в flex иначе при min-width. Плюс: align-items по умолчанию stretch, но при flex-wrap каждая строка рассчитывается отдельно.
Исправление: добавь align-items: stretch явно + align-content: flex-start.

Финальный CSS:
.catalog {
display: flex;
flex-wrap: wrap;
gap: 16px;
align-content: flex-start;
}
.card {
flex: 0 1 calc(33.333% - 11px);
min-width: 280px;
}


calc(33.333% - 11px) — потому что gap 16px делится на 3 колонки: 16×2/3 ≈ 11px.
Ежедневное использование
👤
Пользователь
Работает! Но теперь на мобильных (320px) карточки обрезаются. min-width 280px + padding 16px = не влезает.
🤖
Агент
✅ Мобильная адаптация:

Замени min-width: 280px на медиа-запрос:

.card {
flex: 0 1 calc(33.333% - 11px);
}

@media (max-width: 960px) {
.card { flex: 0 1 calc(50% - 8px); }
}

@media (max-width: 600px) {
.card { flex: 0 1 100%; }
}


Либо современный подход без медиа-запросов:
.catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }

CSS Grid + auto-fill + minmax = адаптивная сетка без единого медиа-запроса. Работает одинаково во всех браузерах включая Safari 14+.

Вопросы про агента и браузер

Агент сам открывает браузер и парсит сайты?
Агент работает через Telegram-чат. Он пишет готовые скрипты на Puppeteer, Playwright или Selenium — ты запускаешь их у себя. Также помогает с CSS, DevTools, оптимизацией.
С какими инструментами автоматизации работает?
Puppeteer, Playwright, Selenium, Cypress, TestCafe — любые. Пишет скрипты, исправляет ошибки в существующих, объясняет API. Также помогает с curl, fetch, axios.
Может помочь с расширением для Chrome?
Да. Manifest v3, content scripts, background workers, popup UI, storage API — поможет спроектировать архитектуру и написать код. Копируй файлы в чат — агент разберётся.
Поможет разобраться в DevTools?
Да — Network tab, Performance profiling, Memory snapshots, Console API, Sources breakpoints. Объяснит что означают метрики и как найти узкие места.

Попробуй ИИ агента за 490 ₽

7 дней без ограничений. Настройка за 3 минуты — бот уже ждёт в Telegram.

Попробовать за 490 ₽ — 7 дней ← ИИ агент для программиста