В эпоху перегрузки информацией поиск в интернете перестал быть простым вводом запроса в строку браузера. Современные AI-агенты и парсеры сталкиваются с двумя принципиально разными задачами: найти релевантные данные (поиск) и извлечь контент с динамических сайтов, которые загружаются через JavaScript. Для этого существуют два инструмента — web_search для поиска через поисковики и browser_scrape для работы с SPA (Single Page Applications). Разберем, чем они отличаются и как их использовать.
web_search: поиск данных через поисковые системы
Инструмент web_search — это не просто отправка запроса в Google. Это API-интерфейс, который использует поисковые движки (Google, Bing, Yandex) и возвращает структурированный результат: заголовки, сниппеты, URL-адреса. Он идеален для:
- Сбора новостей по ключевым словам
- Мониторинга упоминаний бренда
- Поиска контактов компаний
Как это работает:
1. Формируется HTTP-запрос к поисковому API
2. Получается JSON-ответ с ранжированными ссылками
3. AI-агент анализирует сниппеты и выбирает нужные
Пример использования:
result = web_search.query("headless браузер парсинг")
for item in result['items']:
print(f"{item['title']} - {item['link']}")
browser_scrape: извлечение контента из SPA и JS-сайтов
В отличие от статических HTML-страниц, современные SPA (React, Vue, Angular) рендерят контент динамически. Обычный HTTP-запрос вернет пустой HTML или загрузочный спиннер. Здесь на помощь приходит browser_scrape — headless браузер (Chromium без графического интерфейса), который выполняется на сервере.
Ключевые возможности:
- Эмуляция пользователя: клики, скроллы, заполнение форм
- Ожидание загрузки AJAX-запросов
- Извлечение данных после полного рендеринга
Пример сценария:
Допустим, нужно собрать цены с интернет-магазина на SPA. browser_scrape:
1. Открывает страницу в headless-режиме
2. Ждет появления селектора .price (используя waitForSelector)
3. Извлекает текст через page.evaluate()
4. Возвращает результат в JSON
Сравнение инструментов
| Параметр | web_search | browser_scrape |
|---|---|---|
| Тип данных | Текстовые сниппеты | Полный DOM-контент |
| Скорость | Мгновенно (0.5-2 сек) | Зависит от рендера (2-10 сек) |
| Нагрузка | Небольшая (API-запрос) | Высокая (эмуляция браузера) |
| Область применения | Поиск ссылок, мониторинг | Извлечение данных из SPA |
| Поддержка JavaScript | Нет | Да (полная) |
Когда выбирать web_search?
- Нужны только ссылки и краткие описания
- Высокая скорость критична (например, real-time мониторинг)
- Целевой сайт статичен или имеет HTML-версию
Когда выбирать browser_scrape?
- Сайт загружает контент через JavaScript (SPA, AJAX)
- Требуется авторизация или взаимодействие с формой
- Нужны данные, которых нет в поисковом индексе (например, внутренние страницы личного кабинета)
Практические советы
- Комбинируйте инструменты. Используйте
web_searchдля поиска страниц, затемbrowser_scrapeдля извлечения деталей. - Уважайте robots.txt. Даже при headless-парсинге соблюдайте politeness policy — не делайте более 1 запроса в секунду.
- Обрабатывайте ошибки. SPA могут зависать — ставьте таймауты (таймаут) 10-15 секунд.
- Используйте LSI-слова. В контексте парсинга: краулинг, скрапинг, автоматизация сбора данных, веб-драйвер, безголовый браузер, рендеринг, асинхронность.
Заключение
web_search и browser_scrape — два обязательных инструмента в арсенале AI-агента. Первый — для быстрой разведки, второй — для глубокой добычи. Освоив их, вы сможете автоматизировать сбор данных с любых сайтов, от простых блогов до сложных SPA. Начните с малого: настройте поиск новостей по ключевой теме, а затем попробуйте извлечь контент с динамической страницы. Удачи в автоматизации!
Комментарии