Веб-скрейпинг с ChatGPT: простой способ создать Python-скрейпер
Я хотел посмотреть, как далеко ChatGPT может зайти с веб-скрейпингом. Я решил попробовать это с простой задачей: взять публичную страницу продукта, извлечь название, цену, рейтинг и наличие, а затем сохранить результат в CSV.
Таким образом, ChatGPT может сильно помочь, но сама по себе она не является полноценным инструментом для парсинга.
Если ChatGPT имеет доступ в Интернет, он может извлекать или обобщать информацию со страниц в небольшом объеме. Но если вам нужен повторяемый веб-скрейпинг, структурированные данные, несколько URL-адресов, рендеринг JavaScript, повторные попытки и меньше блокировок, вам по-прежнему понадобится код и инфраструктура, которая включает прокси.
Для меня полезной настройкой оказалось:
- ChatGPT для написания и исправления скрейпера
- Python для запуска скрейпера
- Playwright при использовании JavaScript на странице
- Прокси, когда запросы начинают блокироваться или становятся чувствительными к региону
Может ли ChatGPT извлекать данные с веб-сайтов?
Да, но лишь в ограниченной степени. ChatGPT может работать с веб-информацией, когда доступны веб-функции. Это полезно, если вам нужен быстрый поиск, краткое изложение или небольшая ручная проверка. Но это не то же самое, что масштабируемый веб-скрейпинг.
Если вам нужно извлекать цены на товары, отзывы, списки, результаты поиска или рыночные данные с множества страниц, вам потребуется скрапер, написанный на Питон, JavaScript или другой язык программирования.
ChatGPT лучше всего использовать как помощника, который поможет вам создать скрапер.
Это может:
- напишите первую версию кода
- объясните, какие селекторы использовать
- исправить ошибки Python
- Переписать скрейпер для Playwright
- добавить экспорт в CSV или JSON
- добавить прокси
- добавить повторные попытки и обнаружение блокировок
Веб-поисковые инструменты OpenAI предназначены для получения актуальной информации с указанием источников, а не для выполнения структурированных конвейеров сбора данных.
Как парсить с помощью ChatGPT
Шаг 1: Выберите страницу для парсинга
Выберите простую страницу для создания и тестирования вашего парсера. Для теста я использовал:
https://books.toscrape.com/
Books to Scrape — это веб-сайт-песочница для практики веб-скрапинга.

Я оставил задачу простой. Я хотел получить в результате CSV-файл с:
- Название книги
- цена
- наличие
- ссылка на товар
Шаг 2: Скопируйте селекторы продукта
Прежде чем спросить у ChatGPT код, я открыл Books to Scrape в Chrome и проинспектировал карточку одной из книг.
Я кликнул правой кнопкой мыши по заголовку книги, выбрал "Исследовать" и посмотрел HTML-код вокруг заголовка, цены, доступности и ссылки на продукт. Затем я скопировал селекторы, чтобы ChatGPT не пришлось угадывать структуру страницы.
Процесс был простым:
- Щелкните правой кнопкой мыши заголовок книги и выберите "Проверить".
- Щелкните правой кнопкой мыши по выделенному HTML-элементу
- Выберите Копировать → Копировать селектор
- Повторите для цены и наличия
- Для ссылки на товар, проверьте название книги или ссылку на изображение
Шаг 3: Попросите ChatGPT создать скрапер
Затем я дал ChatGPT URL страницы, нужные мне поля и скопированные селекторы.
Запрос выглядел так:
Я хочу извлечь общедоступные данные о товарах с этого демо-сайта:
https://books.toscrape.com/
Мне нужен CSV-файл с:
- название книги
- цена
доступность
- ссылка на товар
Вот селекторы, которые я скопировал из Chrome DevTools:
Селектор книжной карты: article.product_pod
Выбор названия книги: h3 a
Селектор цены: .price_color
Селектор доступности: .availability
Селектор ссылки на товар: h3 a
Напишите парсер на Python, который извлекает все книги с первой страницы и сохраняет результаты в books_to_scrape_products.csv.
Используйте requests и BeautifulSoup.
Добавьте простую обработку ошибок для отсутствующих названий, цен, наличия или ссылок.
Преобразовать относительные ссылки на товары в полные URL.
Вам нужен подробный запрос, а не просто “соскреби этот сайт”. ChatGPT знал страницу, поля, формат вывода и точный результат, который я хотел.
Шаг 4: Начните с BeautifulSoup
"Books to Scrape" — это статичный демонстрационный сайт, поэтому для первой версии мне не понадобился Playwright.
Это упростило настройку.
Поток скрейпера был:
- открой главную страницу Books to Scrape
- найти каждую карточку товара
- извлечь название, цену, наличие и ссылку
- преобразовать относительную ссылку в полный URL
- сохранить всё в CSV файл
ChatGPT сначала сгенерировал версию BeautifulSoup, что имело смысл для этой страницы.
Если бы я парсил страницу, где товары загружаются с помощью JavaScript, я бы попросил ChatGPT переключить скрипт на Playwright. Но для этого теста было достаточно BeautifulSoup.
Шаг 5: Настройте проект Python
После того, как ChatGPT сгенерировал скрейпер, мне нужно было запустить его локально.
Сначала я создал новую папку:
Затем я создал виртуальное окружение.
На macOS я использовал:
Затем я активировал его:
Для Windows команда активации:
Затем я установил пакеты:
Затем я быстро проверил, что Python может их импортировать:
Если pip install завершается с ошибкой NameResolutionError, я бы сначала проверил подключение к Интернету. В моем случае команда была правильной, но установка пакета может не удаться, если Терминал не может получить доступ к PyPI из-за DNS, брандмауэра, VPN или сетевых ограничений.
Если скрапер позже выдает ошибку ModuleNotFoundError: No module named ‘requests’, это обычно означает, что установка не завершилась или виртуальная среда неактивна.
Шаг 6: Создание файла скрапера
Как только настройка была готова, я создал файл Python:
Затем я открыл его в текстовом редакторе.
На macOS это может сработать:
Если эта команда не сработает, я бы использовал любой редактор кода или открыл файл напрямую из папки. Альтернативный вариант через терминал:
Я вставил сгенерированный ChatGPT код в файл и сохранил его.
Сценарий выглядел примерно так:
Шаг 7: Запустите скрейпер и проверьте CSV
Затем я запустил скрипт:
Он создал CSV-файл под названием:
books_to_scrape_products.csv
Чтобы открыть и проверить CSV на macOS, выполните:
Вывод содержал нужные мне поля.

ChatGPT помог мне создать скрейпер, который открывал страницу, извлекал структурированные данные и сохранял их в удобный CSV-файл.
Шаг 8: Попросите ChatGPT собрать информацию с нескольких страниц
Первая версия парсила только первую страницу.
У Books to Scrape 50 страниц, поэтому следующий шаг был очевиден: попросить ChatGPT добавить пагинацию.
Я использовал этот запрос:
Скрейпер работает для первой страницы. Обновите его, чтобы он собирал данные со всех страниц Books to Scrape. На сайте есть пагинация. Переходите по ссылке "next", пока не закончатся страницы. Сохраните те же столбцы CSV: - название книги - цена - наличие - ссылка на товар
ChatGPT обновил скрипт для перехода по ссылке на следующую страницу.
Шаг 9: Добавление базовой отладки и логики повторных попыток
Скрейпер сработал, но не идеально. Он собрал данные с первых пяти страниц, затем страница 6 выдала ошибку времени ожидания.
Терминал показал:
Извлечение страницы 6: https://books.toscrape.com/catalogue/page-6.html Не удалось получить страницу Тайм-аут соединения Пропуск страницы 6, так как она не удалась Сохранено 100 книг в books_to_scrape_products.csv
Затем я попросил ChatGPT улучшить сценарий:
Скрейпер работает, но страница 6 истекла по времени. Обновите скрипт, чтобы он: - повторял попытку неудачной страницы до 3 раз - ждал 3 секунды между повторными попытками - увеличивал время ожидания запроса до 30 секунд - продолжал скрейпинг, если страница по-прежнему не удается после повторных попыток - сохранял все успешно собранные продукты в CSV в конце
Это та самая доработка, которая имеет значение при реальном скрейпинге. Даже простые сайты могут выдавать ошибку тайм-аута. На больших сайтах электронной коммерции повторные попытки, тайм-ауты, логирование и чистые сессии прокси не являются необязательными.
Шаг 10: Добавьте прокси-серверы для более защищенных веб-сайтов
"Books to Scrape" показал, что скрапер работает. Но я бы не стал использовать такую же простую настройку для реальных сайтов электронной коммерции, торговых площадок, результатов поиска или платформ с отзывами.
На этих сайтах часто есть антибот-системы, ограничения частоты запросов, региональный контент и более строгие проверки IP-адресов. Если каждый запрос поступает с одного и того же локального IP-адреса, офисного Wi-Fi, облачного сервера или бесплатного VPN, скрапер может начать блокироваться, получать запросы на подтверждение или неполные страницы.
Вот где я рекомендую добавить прокси.
Я бы добавил их после того, как скрапер отработает на небольшом тесте. Сначала я хочу убедиться, что код правильный. Затем добавлю прокси, чтобы сделать слой доступа более стабильным.
Для скрапинга прокси помогают с:
- поддержание стабильной сессии при тестировании
- парсинг из определенной страны, города или почтового индекса
- разделение различных задач веб-скрапинга по сеансам IP
- снижение зависимости от часто используемых VPN или IP-адресов дата-центров
- проверка региональных цен, доступности или результатов поиска
- диагностика причины сбоя: код или проблемы с доступом
В NodeMaven я бы настроил прокси так:
- Тип прокси: Резидентские
- Местоположение: на основе целевого рынка
- Тип сеанса: Вращающийся
- Протокол: HTTP
- Хост: gate.nodemaven.com
- Порт: 8080
- Имя пользователя и пароль от панели управления
Затем установите учетные данные прокси-сервера в Терминале, а не напрямую в файле Python.
На macOS или Linux:
В Windows PowerShell:
Затем попросите ChatGPT обновить скрапер с этим запросом:
Скрейпер работает на тестовом сайте. Теперь добавьте поддержку аутентификации прокси NodeMaven. Используйте переменные окружения для учетных данных: - NODEMAVEN_PROXY_USERNAME - NODEMAVEN_PROXY_PASSWORD Прокси-сервер: http://gate.nodemaven.com:8080 Также добавьте: - обработку тайм-аутов - логирование неуспешных URL - логику повторных попыток - обнаружение блокирующих страниц - понятное сообщение об ошибке, если учетные данные прокси отсутствуют
Для скрапера `requests` настройка прокси будет выглядеть следующим образом:
Это выносит учетные данные из файла Python. Это также делает парсер более безопасным для совместного использования, создания снимков экрана или включения в репозиторий.
Это та часть, с которой ChatGPT не справляется самостоятельно. Он может написать скрапер, но не может повысить доверие к низкокачественному IP, добавить ротацию IP или поддерживать стабильность сессии на защищенных веб-сайтах. Чистые резидентные прокси, постоянные сессии и таргетинг по местоположению обеспечивают скраперу лучшую среду для работы.
Почему NodeMaven подходит для рабочих процессов веб-скрейпинга с использованием ChatGPT
NodeMaven полезен здесь, потому что он помогает с тем, что ChatGPT не решает: доступ к качеству.
NodeMaven помогает с:
- Чистые вращающиеся резидентные IP-адреса для более естественного доступа
- сеансы электронной сессии для более длительных запусков парсинга
- страна, город, интернет-провайдер и почтовый индекс
- Поддержка SOCKS5 и HTTP
- Режимы фильтрации с акцентом на качество
- мобильные прокси, включенные в тарифы для резидентов
- Гарантия качества и кэшбэк, где это применимо
Чистые IP-адреса и стабильные сессии упрощают отделение проблем с кодом от проблем с доступом. Если скрейпер не работает в чистой конфигурации, я знаю, что нужно проверять селекторы, JavaScript или структуру страницы, а не гадать вслепую.
Скрейпер ChatGPT против API для скрейпинга
После тестирования этого я бы разделил инструменты так:
| Настройка | Лучшее для | Ограничение |
|---|---|---|
| ChatGPT с доступом в Интернет | Краткие справочные данные | Немасштабируемый структурированный скрапинг |
| ChatGPT + BeautifulSoup | Статические страницы, такие как Books to Scrape | Сбои на сайтах с большим количеством JavaScript |
| ChatGPT + Playwright | Динамические страницы | Медленнее и более ресурсоемкий |
| ChatGPT + NodeMaven прокси | Реальные рабочие процессы скрапинга с лучшим контролем доступа | Дополнительная плата за прокси |
| API для скрейпинга | Управляемый рендеринг, повторные попытки и инфраструктура | Меньше контроля над пользовательской логикой |
| Инструменты в стиле MCP | Исследования и прототипы | Не всегда готово к производству |
MCP также стоит внимания. Вместо того чтобы просить ChatGPT написать код и запускать его отдельно, MCP может подключить ИИ-ассистента к внешним инструментам. OpenAI документирует MCP и коннекторы для подключения моделей к внешним системам.
Основной вывод
ChatGPT может помочь с веб-скрейпингом, но это не полный стек для скрейпинга.
Это может помочь быстро создать рабочий скрапер, но для веб-сайтов с анти-бот системами, таких как Амазон, вам еще нужна чистая инфраструктура, стабильные сессии, логирование, повторные попытки и проверки данных.
Мой практический вывод прост:
- Используйте ChatGPT для создания и отладки парсера.
- Используйте Python или Драматург запустить его.
- Используйте прокси NodeMaven, когда рабочий процесс требует ротации IP-адресов, стабильного доступа, контроля местоположения и чистых IP-адресов.




