Как AI-агент ищет в интернете: web_search и Playwright для парсинга JS-сайтов

Введение

Современные AI-агенты, такие как GPT-4 с инструментами, Claude или специализированные поисковые боты, сталкиваются с проблемой: интернет — это не только статичный HTML, но и динамический JavaScript. Обычные методы поиска (web_search) выдают сырую текстовую выдачу, но не могут «увидеть» контент, подгружаемый скриптами. Здесь на помощь приходит Playwright — инструмент для автоматизации браузера, который умеет работать с headless-браузером. В этой статье мы разберем, как AI-агент комбинирует web_search и Playwright для полноценного парсинга данных.

Как работает web_search в AI-агентах?

Поиск в интернете для AI обычно реализуется через API поисковых систем (Google, Bing) или через открытые библиотеки. Алгоритм прост:

  1. Агент отправляет запрос к поисковой системе.
  2. Получает список URL и сниппетов (кратких описаний).
  3. Извлекает текст с найденных страниц (часто через HTTP-запросы).

Проблема: Многие современные сайты (например, интернет-магазины, портфолио, веб-приложения) загружают контент через JavaScript. Без выполнения скриптов HTML-код пуст или содержит только скелет страницы. Обычный HTTP-клиент (через requests или fetch) не может получить реальный контент.

Playwright: headless-браузер для парсинга

Playwright — это библиотека для управления браузерами (Chromium, Firefox, WebKit) в автоматическом режиме. Она позволяет:

  • Загружать страницу с полным рендерингом JavaScript.
  • Кликать по кнопкам, заполнять формы, скроллить.
  • Ждать появления динамических элементов.
  • Извлекать DOM-дерево после всех асинхронных загрузок.

Пример кода на Python:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto('https://example.com/dynamic-site')
    # Ждем загрузки контента
    page.wait_for_selector('.product-title')
    text = page.inner_text('.product-title')
    print(text)
    browser.close()

Этот код открывает headless-браузер, загружает страницу, дожидается появления элемента с классом product-title и извлекает его текст. Без Playwright вы бы получили пустую строку.

Комбинированный подход: web_search + Playwright

Эффективный AI-агент должен сначала найти релевантные страницы (через web_search), а затем спарсить их содержимое с помощью Playwright. Алгоритм:

  1. Поиск: Агент отправляет запрос (например, «купить ноутбук ASUS цена 2025»).
  2. Анализ выдачи: Из сниппетов выбираются наиболее подходящие URL.
  3. Парсинг: Для каждого URL запускается headless-браузер Playwright.
  4. Извлечение данных: Агент парсит цены, характеристики, отзывы.
  5. Агрегация: Результаты сводятся в таблицу или отчет.

Пример архитектуры:

AI-агент
    |
    ├── web_search (API Google)
    |       → список URL
    |
    └── Playwright (headless Chrome)
            → загрузка JS-сайта
            → извлечение данных

Практический пример: парсинг интернет-магазина

Допустим, AI-агент должен собрать цены на iPhone 15 с сайта, который использует React. Обычный requests.get() вернет только пустой div с id="root". Playwright же выполнит скрипты и отобразит товары.

Код для извлечения цен:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto('https://shop.example.com/iphone')
    page.wait_for_selector('.price')
    prices = page.locator('.price').all_inner_texts()
    print(prices)  # ['$899', '$1099', ...]
    browser.close()

Преимущества и ограничения

Плюсы:
- Доступ к динамическому контенту.
- Возможность взаимодействия (кнопки, бесконечная прокрутка).
- Единый интерфейс для разных браузеров.

Минусы:
- Потребляет больше ресурсов (память, CPU).
- Медленнее, чем HTTP-запросы (из-за запуска браузера).
- Сайты могут блокировать headless-браузеры (через детекцию User-Agent или WebDriver).

Заключение

AI-агенты, которые ограничиваются только web_search, видят лишь верхушку айсберга. Для полноценного сбора данных с современных сайтов необходимо использовать Playwright или аналоги (Puppeteer, Selenium). Комбинация поиска и headless-браузера открывает доступ к контенту, скрытому за JavaScript. Если вы разрабатываете AI-бота для аналитики рынка, мониторинга цен или сбора контента — внедрение Playwright станет ключевым шагом.

Хотите глубже изучить тему? Подпишитесь на наш блог или напишите в комментариях — мы подготовим серию статей по созданию AI-агентов с нуля!

← Все статьи

Комментарии

Читайте также

Если программирование решено, почему софт становится хуже? Парадокс AI-кодинга

25 июля 2026

Китайский язык с нуля до HSK 4 за 6 месяцев: как AI-репетитор Asibiont меняет правила игры

25 июля 2026

Освойте облачную архитектуру в 2026 году: курс AWS Solutions Architect Professional (SAP-C02) – тренды, навыки и обучение с ИИ

25 июля 2026

Как построить выигрышную стратегию ИИ-трансформации: из курса Asibiont по бизнес-трансформации с помощью ИИ

25 июля 2026

Интеграция ProtonMail с AI-агентом: автоматизация зашифрованных email-процессов без кода

25 июля 2026

Как подключить VGA-дисплей на ESP32 к AI-агенту ASI Biont: мониторинг IoT данных в реальном времени

25 июля 2026

Prentis: новая AI-лаборатория Рида Хоффмана и Марка Пинкуса ведёт переговоры о привлечении $100 млн

25 июля 2026

460 ГБ, свободно 14: археология диска разработчика — как найти и удалить скрытые гигабайты

25 июля 2026

Почему маркетологам пора выйти за рамки атрибуции и принять агентную оптимизацию

25 июля 2026