ChatGPT для веб-скрейпинга: что работает, что ломается и что лучше

Последнее обновление: July 9, 2026
ChatGPT для веб-скрейпинга: что работает, что ломается и что лучше

На прошлой неделе один коллега из нашей sales-команды попросил помочь ему собрать контактные данные примерно со 200 страниц бизнес-каталогов. План был простой: копировать и вставлять всё вручную в таблицу. Я предложил попробовать ChatGPT, чтобы сгенерировать Python-скрейпер. Через двадцать минут у него уже был скрипт. А ещё через тридцать минут он написал мне в личку: «Сработало на первых пяти страницах, а потом просто… остановилось».

Это на удивление типичная история. ChatGPT действительно отлично пишет код для веб-скрейпинга — пока не перестаёт. И большинство онлайн-руководств заканчиваются на этапе «смотрите, на учебном сайте всё работает», оставляя вас один на один с реальным сайтом, где есть JavaScript, антибот-защита или пагинация. В этом гайде я покажу, как ChatGPT для веб-скрейпинга выглядит на практике: полный рабочий процесс, пять переиспользуемых шаблонов промптов, честный разбор, где всё ломается, и что делать, когда это случается, включая no-code альтернативы вроде Thunderbit, которые вообще не требуют кода.

Что такое веб-скрейпинг с ChatGPT?

«ChatGPT веб-скрейпинг» означает использование ChatGPT для помощи в извлечении данных с сайтов. Но есть важное различие, которое многие упускают: сам ChatGPT сайты не скрейпит. Он не может перейти по URL, загрузить HTML или кликать по страницам. Зато он может сгенерировать код (обычно на Python), который делает это за вас, либо разобрать сырой HTML, вставленный в чат, и вернуть структурированные данные.

Есть два основных подхода:

  1. ChatGPT как генератор кода: вы описываете страницу и нужные данные, а ChatGPT пишет Python-скрипт (обычно на BeautifulSoup, Selenium или Playwright), который вы запускаете у себя.
  2. ChatGPT как парсер данных: вы копируете сырой HTML в чат (или загружаете его через Code Interpreter), а ChatGPT извлекает нужные поля в формате JSON или CSV.

В обоих случаях загрузку страниц и запуск делаете вы. ChatGPT — это мозг, а не руки. Даже с более новым браузером ChatGPT Atlas (запущен в октябре 2025), который умеет просматривать веб в диалоговом режиме, он возвращает ответы — а не структурированные CSV-таблицы с 500 строками товаров. Это помощник для просмотра, а не конвейер для извлечения данных.

Зачем использовать ChatGPT для веб-скрейпинга и кому это подходит

ChatGPT резко снижает порог входа в веб-скрейпинг. По данным 2025 Stack Overflow Developer Survey, 84% разработчиков уже используют или планируют использовать AI-инструменты в работе, а ChatGPT лидирует с долей 82%. Но аудитория «ChatGPT веб-скрейпинга» — это не только разработчики. Это SDR-менеджеры, собирающие списки лидов, ecommerce-менеджеры, отслеживающие цены конкурентов, аналитики в недвижимости, вытягивающие данные по объектам, и маркетинговые команды, агрегирующие контент.

Вот краткий обзор типовых сценариев и того, кому они помогают:

СценарийКому полезноЧто вы собираете
Сбор sales-лидовSDR, sales opsИмена, email, телефоны из каталогов
Мониторинг цен конкурентовEcommerce, pricing-командыНазвания товаров, цены, наличие, SKU
Исследование рынкаАналитики, основателиИнформация о компаниях, отзывы, рейтинги, списки функций
Сбор данных по недвижимостиАгентам, инвесторамЦены, адреса, количество спален/ванных, данные агента
Агрегация контентаМаркетинг, SEO-командыЗаголовки статей, URL, даты публикации, авторы

Вручную копировать данные со 100 страниц может занять 3–5 часов. Скрипт, сгенерированный ChatGPT, способен сделать то же самое за минуты — если сработает. И вот это «если» и есть ключевая тема статьи.

Gartner прогнозирует, что к 2026 году разработчики вне формальных IT-подразделений составят как минимум 80% пользователей low-code-инструментов. Люди, которые ищут «ChatGPT web scraping», всё чаще оказываются не разработчиками, а теми, кому нужны данные без найма инженера. Для них ChatGPT — это первая остановка, а Thunderbit — инструмент, к которому они переходят, когда скрипт отказывается запускаться.

Как работает веб-скрейпинг через ChatGPT: пошаговый разбор

Ниже — полный процесс от начала до конца на примере страницы бизнес-каталога, а не учебного сайта.

  • Сложность: средняя (нужен базовый навык запуска Python)
  • Время: около 15–30 минут на первый скрейп
  • Что понадобится: браузер Chrome, Python-среда (Python 3.10+), ChatGPT (подойдёт бесплатная версия) и целевой URL

Шаг 1: Изучите сайт и определите нужные данные

Откройте страницу, которую хотите скрейпить, в Chrome. Нажмите правой кнопкой мыши на нужный элемент данных, например на название компании, и выберите Inspect. Откроется Chrome DevTools и подсветится HTML-элемент.

Ищите CSS-селекторы — что-то вроде h2.business-name, span.phone или a.website-link. Чем точнее селекторы, тем лучше будет результат от ChatGPT. Скопируйте фрагмент HTML, который представляет одну карточку или одну строку данных, чтобы вставить его в промпт.

Теперь у вас должен быть короткий список полей, например business_name, phone, website_url, и соответствующие CSS-селекторы.

Шаг 2: Напишите подробный промпт для ChatGPT

Здесь большинство гайдов и ошибается: дают слишком размытый запрос и надеются на чудо. Хороший промпт для скрейпинга должен содержать шесть частей:

  1. Язык и библиотека: «Напиши скрипт на Python 3.11 с BeautifulSoup 4».
  2. Целевой URL: точная страница, которую нужно скрейпить.
  3. CSS-селекторы: для каждого поля — селектор, найденный на шаге 1.
  4. Формат вывода: CSV, JSON или оба.
  5. Особые указания: кодировка, обработка ошибок, задержки.
  6. Фрагмент HTML: вставьте 20–40 строк реального HTML страницы, чтобы ChatGPT видел структуру.

Вот пример промпта с пояснениями:

You are a senior Python engineer. Write a web scraper using Python 3.11 and BeautifulSoup 4.

Target URL: https://example.com/businesses
Goal: Extract every business card on the page and return one row per business.

Fields needed (CSS selectors in parentheses):
- business_name (h2.biz-name)
- phone (span.phone-number)
- website_url (a.biz-link, href)
- rating (div.stars[data-rating])

Output: save to businesses.csv with UTF-8 encoding and a header row.

Requirements:
- Use requests with a realistic User-Agent header
- Handle missing fields gracefully (None, not crash)
- Print the number of businesses extracted at the end
- Add a 1-second delay between requests if you loop

Here is a representative HTML snippet from the page (one business card):
<PASTE 20-40 LINES OF THE ACTUAL HTML HERE>

Совет: вставка HTML-фрагмента — это самый сильный буст к точности. ChatGPT не может открыть URL, поэтому именно этот фрагмент — его единственный источник правды.

Шаг 3: Проверьте и протестируйте сгенерированный код

Не запускайте код ChatGPT вслепую. Сначала пробегитесь по нему глазами. Обратите внимание на:

  • Выдуманные селекторы: ChatGPT иногда придумывает CSS-классы, которых на сайте не существует.
  • Отсутствующие библиотеки: проверьте, что есть pip install requests beautifulsoup4 (или playwright и т. д.).
  • Жёстко заданные значения: убедитесь, что URL, имена полей и пути к файлам указаны правильно.

Создайте виртуальное окружение Python, установите зависимости и запустите скрипт на небольшом объёме данных — одной-двух страницах. Проверьте CSV: заполнены ли колонки? Есть ли пустые ячейки там, где вы ожидали данные?

Шаг 4: Улучшайте через уточняющие промпты

Сила ChatGPT — в итерациях. Если первый скрипт собирает только первую страницу, спросите:

«Скрипт скрейпит только первую страницу. Можешь добавить пагинацию, чтобы он собирал все страницы? Сайт использует ?page=1, ?page=2 и т. д. Остановись, когда страница возвращает ноль результатов, или после 50 страниц.»

Если каких-то полей не хватает, попросите ChatGPT добавить регулярные выражения для email или телефона. Если сайт сильно завязан на JS, попросите версию на Playwright. Каждый следующий запрос надстраивает код над предыдущим — это как pair programming с очень быстрым, но иногда чересчур самоуверенным напарником.

5 шаблонов промптов ChatGPT для веб-скрейпинга, которые можно копировать и вставлять

Я не встречал другого гайда с таким набором. Я подготовил, протестировал и доработал пять шаблонов промптов под разные сценарии. Просто скопируйте их, подставьте свой URL и HTML-фрагмент — и ChatGPT вернёт рабочий код с первой попытки, или почти с первой.

Шаблон 1: Скрейпер страницы со списком (каталоги товаров, директории)

Когда использовать: у вас страница с множеством элементов (товары, компании, вакансии), и нужен один ряд на один элемент.

You are a senior Python engineer. Write a web scraper using Python 3.11 and BeautifulSoup 4.

Target URL: [YOUR URL]
Goal: Extract every item card on the page and return one row per item.

Fields needed (CSS selectors in parentheses — derived from Inspect):
- [field_1] ([selector_1])
- [field_2] ([selector_2])
- [field_3] ([selector_3])
- [field_4] ([selector_4, attribute if needed])

Output: save to items.csv with UTF-8 encoding and a header row.

Requirements:
- Use requests with a realistic User-Agent header
- Handle missing fields gracefully (None, not crash)
- Print the number of items extracted at the end
- Add a 1-second delay between requests if you loop

Here is a representative HTML snippet from the page (one item card):
[PASTE 20-40 LINES OF THE ACTUAL HTML HERE]

Ожидаемый результат: CSV-файл, где одна строка соответствует одному элементу, а колонки названы по вашим полям.

Шаблон 2: Скрейпер детальной страницы / подстраницы

Когда использовать: у вас одна страница с подробной информацией — карточка товара, профиль человека, объект недвижимости — и нужно собрать всё в одну структурированную запись.

Write a Python function `scrape_detail(url)` that takes a detail page URL and returns a dict with these keys:

- [field_1]
- [field_2]
- [field_3]
- [field_4]
- [field_5]

Use BeautifulSoup. Gracefully handle any missing field (return None for it).
Include regex fallbacks for email and phone — not every page wraps them in consistent tags.

Return the dict, and also append it as one row to details.csv (create the file with header on first call).

Reference HTML snippet from a real detail page:
[PASTE 40-60 LINES OF ONE DETAIL PAGE HTML]

Ожидаемый результат: словарь для каждой страницы и растущий CSV-файл с одной строкой на одну детальную страницу.

Шаблон 3: Скрейпер динамической JS-страницы (Playwright)

Когда использовать: контент загружается через JavaScript (React, Angular и т. д.) — в исходнике HTML вы видите пустой <div id="root">.

Write a Python web scraper using Playwright (sync API) for a JavaScript-rendered page.

Target URL: [YOUR URL]
Goal: extract all result cards that appear after the page finishes loading dynamically.

Requirements:
- Use `page.wait_for_selector('[YOUR CARD SELECTOR]', timeout=15000)` to wait for content
- Scroll to the bottom of the page twice with a 1-second pause between scrolls to trigger lazy-loaded results
- For each card extract: [field_1], [field_2], [field_3], [field_4]
- Save to results.json as a list of dicts, UTF-8
- Run headless=False first (so I can watch it) and add a 2-second pause at the end before closing

Do not use requests or BeautifulSoup — Playwright only.

Ожидаемый результат: JSON-файл, где для каждой карточки результатов есть отдельный объект со всеми заполненными полями.

Шаблон 4: Обработчик пагинации

Когда использовать: у вас уже есть рабочий скрейпер для одной страницы, и теперь нужно пройтись по всем страницам.

Take the existing BeautifulSoup scraper below and wrap it in a pagination loop that collects ALL pages, not just page 1.

The site uses URL-param pagination: ?page=1, ?page=2, etc.
Stop condition: when the current page yields zero items, OR when the response status is not 200, OR when you hit page 100 (safety cap).

Add:
- A 1.5-second polite delay between page requests
- A try/except around each request that logs the error and continues
- A progress print every 5 pages: "Page 15 → 300 items so far"
- Final save to items_all.csv

Existing scraper:
[PASTE YOUR CURRENT SINGLE-PAGE SCRAPER HERE]

Ожидаемый результат: один CSV со всеми элементами со всех страниц и вывод прогресса в консоль.

Шаблон 5: Очистка и структурирование данных — подход «вставьте HTML»

Когда использовать: у вас уже есть сырой HTML (из curl, из браузера или из файла), и вы просто хотите, чтобы ChatGPT превратил его в чистые структурированные данные — без кода.

I will paste raw HTML from a product detail page. You do not need to write code — just return the extracted data as a JSON object matching this schema:

{
  "name": string,
  "brand": string,
  "price": number,
  "currency": string (ISO 4217),
  "availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
  "rating": number (0-5) or null,
  "review_count": integer or null,
  "description": string (max 500 chars),
  "key_specs": [{"name": string, "value": string}]
}

Use null for anything you genuinely cannot find — do NOT hallucinate.
Return ONLY the JSON object, no prose, no markdown fence.

HTML:
[PASTE THE FULL PAGE HTML HERE]

Ожидаемый результат: один JSON-объект, который можно сразу загружать в таблицу или базу данных.

Где ChatGPT веб-скрейпинг ломается: честные ограничения

Большинство гайдов вообще обходят этот блок. Я достаточно долго отлаживал скрипты, сгенерированные ChatGPT, чтобы точно знать, где они разваливаются, и 2025 Stack Overflow survey подтверждает, что только 3% разработчиков «очень сильно доверяют» AI-выводу. Вот почему.

Сайты с тяжёлым JavaScript и динамической загрузкой

Более 98,8% сайтов используют JavaScript для клиентской логики. Один только React теперь работает на 7,2% всех сайтов — это примерно 67% рост за один год. Когда вы просите ChatGPT «скрейпить эту страницу», по умолчанию он выдаёт скрипт на requests + BeautifulSoup. Такой скрипт получает сырой HTML — а на сайте на React или Angular этот HTML часто представляет собой пустой <div id="root">. Реальные данные загружаются после выполнения JavaScript, а requests этого не делает.

ChatGPT может сгенерировать код на Selenium или Playwright, если вы попросите, но такие скрипты медленнее (в среднем Playwright загружает страницу за 2,9 секунды, тогда как статические запросы — быстрее секунды) и часто требуют отладки условий ожидания, скролла и селекторов элементов, которые ChatGPT иногда определяет неверно.

Антибот-защита и CAPTCHA

Cloudflare защищает примерно 20% всех сайтов, а сервисы вроде DataDome заявляют о 99,9% точности обнаружения ботов. Обычный requests.get() с Python user-agent — это, по сути, классический бот-фингерпринт. Скрипты, сгенерированные ChatGPT, не содержат ротации прокси, подмены TLS-фингерпринта, обработки cookies и решения CAPTCHA. На любом коммерческом сайте с хотя бы базовой защитой такой скрипт блокируется уже на первом запросе.

Пагинация и скрейпинг в больших объёмах

Стандартная логика пагинации в ChatGPT обычно сводится к ?page=N или клику по кнопке .next. В реальных проектах сайты используют пагинацию на основе cursor, бесконечный скролл через IntersectionObserver или GraphQL-запросы. ChatGPT не сможет сгенерировать корректный код для таких случаев, если вы не покажете ему точный сетевой запрос — и даже тогда цикл часто получается хрупким. В гайде Oxylabs по ChatGPT web scraping и туториале Decodo за 2026 год пагинация отмечена как главная точка, где их примерным скриптам нужен второй или третий промпт.

Постоянный и запланированный скрейпинг

ChatGPT даёт вам одноразовый скрипт. Там нет планировщика, отслеживания изменений и уведомлений. Если вам нужно «проверять цены конкурентов каждое утро», придётся осваивать cron, Airflow или Lambda — а это уже за рамками первого ответа ChatGPT. Для бизнес-пользователей, которым нужны регулярные данные, это тупик.

Проблема скорости и стоимости

Для сайтов с тяжёлым JS реальное время на страницу при использовании Selenium или Playwright в идеале составляет 3–10 секунд, а с повторными попытками и антибот-ожиданиями — 40–60 секунд на страницу, что часто отмечают на форумах и в туториалах.

Если использовать ChatGPT API для разбора HTML (подход «вставить HTML» в масштабе), расходы на токены быстро растут. При текущих ценах GPT-4o (~$2.50/M input tokens, $10/M output) разбор 1 000 страниц товаров обойдётся примерно в $95–$105 только на токенах. С GPT-4o mini это около $6.50 за тот же объём. Добавьте стоимость прокси ($3–10/GB), поддержку локального краулера и время разработчика — и подход «просто используйте ChatGPT» начинает выглядеть дорогим.

МасштабСтоимость токенов GPT-4o (оценка)Стоимость токенов GPT-4o Mini (оценка)
100 страниц~$9.55~$0.65
1 000 страниц~$95.50~$6.50
10 000 страниц~$955~$65

Оценки предполагают около 50 тыс. входных токенов и 2 тыс. выходных токенов на страницу. Фактическая стоимость зависит от размера страницы и сложности вывода.

ChatGPT для веб-скрейпинга vs no-code AI-скрейперы vs custom code: схема выбора

Не для каждой задачи нужен один и тот же инструмент. Ниже — схема выбора, которой я пользуюсь в Thunderbit после тестирования всех трёх подходов на реальных проектах.

СценарийChatGPT + PythonNo-code AI-скрейпер (например, Thunderbit)Custom code + proxies
Простые статические страницы✅ Отлично — быстро генерируется✅ Работает, но может быть избыточно⚠️ Слишком сложно
JS-рендеринг / динамический контент⚠️ Нужны Selenium/Playwright — код часто ломается✅ Обрабатывает через браузер/облачный скрейпинг✅ Полный контроль
Сайты с антибот-защитой / CAPTCHA❌ ChatGPT не решает CAPTCHA✅ Облачная инфраструктура закрывает многие случаи✅ С ротацией прокси
Пагинация (100+ страниц)⚠️ Хрупкие циклы, нужна отладка✅ Встроенная поддержка пагинации✅ Надёжно при инженерной настройке
Пользователь не разработчик❌ Нужны знания Python✅ 2 клика, без кода❌ Требуется программирование
Регулярный/запланированный скрейпинг❌ Ручной запуск каждый раз✅ Функция scheduled scraper✅ Через cron/orchestration
Экспорт в Sheets/Airtable/Notion⚠️ Нужен дополнительный код✅ Нативный экспорт в один клик⚠️ Нужен код интеграции

Коротко: используйте ChatGPT для быстрых разовых скриптов и обучения. Используйте no-code инструмент вроде Thunderbit для продакшен-уровня, повторяющегося или не требующего кода скрейпинга. Используйте custom code + proxies для инженерных задач enterprise-уровня, где нужен полный контроль.

No-code альтернатива: как Thunderbit решает задачи веб-скрейпинга без кода

Для читателей, которые не программируют — или уже потратили достаточно вечеров на отладку скриптов ChatGPT — есть совсем другой путь. ChatGPT генерирует код. Thunderbit его пропускает.

Я работаю в команде Thunderbit, поэтому скажу честно. Но я и правда считаю, что для большинства бизнес-пользователей это самый быстрый путь. Вот как выглядит процесс.

AI Suggest Fields: автоматическое определение структуры данных на любой странице

Откройте любую страницу, нажмите расширение Thunderbit для Chrome и выберите «AI Suggest Fields». ИИ Thunderbit анализирует отрисованную страницу — включая контент, загружаемый JS, — и предлагает названия колонок и типы данных. Никакого Inspect, никаких CSS-селекторов, никакого промпт-инжиниринга. Затем просто нажмите «Scrape».

Сравните это с подходом через ChatGPT: открыть DevTools, найти селекторы, написать промпт, проверить код, установить зависимости, запустить скрипт, проверить вывод, повторить. Thunderbit сводит всё это к двум кликам.

Скрейпинг подстраниц для автоматического обогащения списков

После скрейпинга страницы со списком нажмите «Scrape Subpages». Thunderbit перейдёт на детальную страницу каждой строки и добавит дополнительные поля — например email, телефон или био — в вашу таблицу. С ChatGPT вам понадобятся отдельный ск

Shuai Guan
Shuai Guan
Генеральный директор Thunderbit | Эксперт по автоматизации данных с помощью ИИ Shuai Guan — генеральный директор Thunderbit и выпускник инженерного факультета Мичиганского университета. Опираясь почти на десятилетний опыт в сфере технологий и SaaS-архитектуры, он специализируется на том, чтобы превращать сложные модели ИИ в практичные no-code инструменты для извлечения данных. В этом блоге он делится честными, проверенными в деле инсайтами о веб-скрейпинге и стратегиях автоматизации, чтобы помочь вам выстраивать более умные, data-driven рабочие процессы. Когда он не занимается оптимизацией потоков данных, тот же внимательный подход к деталям он переносит в своё увлечение фотографией.
Содержание

Собирай страницу, просто задав вопрос

Скажи, что тебе нужно, простыми словами. А ещё лучше — ничего не говори.

Попробовать Thunderbit бесплатно
Извлекай данные с помощью ИИ
Легко передавай данные в Google Sheets, Airtable или Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week