№36

8 октября 2026

Разбор

ScrapeGraphAI: локальный и бесплатный скрапер лидов, пока не зовёте туда Claude

Если коротко

Что даёт
свой скрипт на Python, который открывает страницу каталога компаний и выгружает из неё то, что вы попросите словами (название, сайт, email, контактную форму) - без вёрстки под конкретный сайт и без ручного копирования карточек.
Зачем
копировать карточки компаний руками медленно, а готовые лид-скрейперы вроде тех, что продаются в Apify Store, берут деньги за каждую найденную компанию.
Как сделать
поставить библиотеку scrapegraphai и Ollama, скачать одну локальную модель, написать 15 строк Python с SmartScraperGraph (или SmartScraperMultiGraph для нескольких страниц каталога сразу).
Профит
сама библиотека и модель бесплатны навсегда (MIT-лицензия, 31 400+ звёзд на GitHub, репозиторий живой), после скачивания модели работает офлайн - платите только временем на код, не токенами.
Где подвох
«свой MCP-сервер для Claude», про который говорит заметка, это не тот же бесплатный локальный путь. Это мост к платному облаку той же компании: бесплатно там только разовые 500 кредитов (около 80 страниц с извлечением данных), дальше от 20 долларов в месяц. Хотите звать это из Claude - платите за облако; хотите бесплатно - пишете скрипт с Ollama и Claude сюда вообще не привлекаете.

Что это

ScrapeGraphAI - открытая Python-библиотека (MIT-лицензия, репозиторий ScrapeGraphAI/Scrapegraph-ai), которая вместо CSS-селекторов и XPath отдаёт задачу языковой модели: вы описываете словами, что нужно достать со страницы, библиотека прогоняет страницу через браузер (Playwright) и через модель, а возвращает готовый JSON. Модель можно взять платную через API (OpenAI, Anthropic, Gemini), а можно локальную через Ollama - тогда весь процесс идёт на вашей машине и не стоит ни цента сверх электричества.

Отдельно от библиотеки у той же команды есть управляемое облако (scrapegraphai.com) с тем же движком извлечения, но за деньги, и уже к этому облаку, а не к вашей локальной установке, подключается MCP-сервер для Claude, Cursor и подобных.

Попутно это подтвердило догадку из туториала 05: «Epify», которое я не смог распознать на слух, - это Apify. Он и правда платная альтернатива: конкретные лид-скрейперы в его Store берут оплату за каждую найденную компанию (например, «Contractor Leads Scraper» - 8 долларов за 1000 лидов), хотя это цена отдельных готовых скрейперов, а не всей платформы Apify.

Как это работает

Под одним названием ScrapeGraphAI на самом деле два разных продукта, и заметка их не различает:

  1. Открытая библиотека, которую вы запускаете сами. Полный контроль, можно держать данные у себя, можно подключить локальную модель через Ollama, тонко настроить расходы. Именно тут «локально и бесплатно» - правда.
  2. Облачный API с кредитами. Ноль инфраструктуры, готовый обход антибот-защиты, встроенный краулер по всему каталогу и мониторинг изменений по расписанию - но за это платите кредитами. MCP-сервер для Claude ходит именно сюда, а не в вашу локальную установку.

Для по-настоящему бесплатного сбора лидов подходит только первый путь. Автоматический обход всех страниц каталога одним параметром (total_pages в терминах их документации) - фича именно облачного API; в открытой библиотеке многостраничность делаете сами - через SmartScraperMultiGraph со списком URL, который собираете сами (например, страницы 1, 2, 3 каталога).

Как повторить

Вариант А - по-настоящему бесплатно и локально, без Claude

  1. Установите библиотеку и браузерный движок:
   pip install scrapegraphai
   playwright install
  1. Поставьте Ollama (ollama.com) и скачайте модель, например:
   ollama pull llama3.2

Модель весит несколько гигабайт, качается один раз, дальше работает офлайн.

  1. Напишите скрипт extract_leads.py:
   import json
   from scrapegraphai.graphs import SmartScraperGraph

   graph_config = {
       "llm": {
           "model": "ollama/llama3.2",
           "model_tokens": 8192,
           "format": "json",
       },
       "verbose": True,
       "headless": False,
   }

   smart_scraper_graph = SmartScraperGraph(
       prompt="Собери список компаний с этой страницы: название, сайт, email или ссылка на контактную форму",
       source="https://адрес-каталога-компаний/",
       config=graph_config,
   )

   result = smart_scraper_graph.run()
   print(json.dumps(result, indent=4, ensure_ascii=False))
  1. Запустите python extract_leads.py. Первый запуск дольше обычного - Ollama грузит модель в память.
  2. Если у каталога несколько страниц, замените на SmartScraperMultiGraph со списком адресов вместо одного:
   from scrapegraphai.graphs import SmartScraperMultiGraph

   urls = [
       "https://адрес-каталога/page/1",
       "https://адрес-каталога/page/2",
       "https://адрес-каталога/page/3",
   ]
   graph = SmartScraperMultiGraph(
       prompt="Собери список компаний: название, сайт, контакты",
       source=urls,
       config=graph_config,
   )
   result = graph.run()
  1. Результат - обычный Python dict/JSON. Чтобы получить таблицу: import pandas as pd; pd.DataFrame(result["...ваше поле со списком..."]).to_csv("leads.csv").

Вариант Б - через Claude по MCP (платно, для сравнения с вариантом А)

  1. Заведите ключ на dashboard.scrapegraphai.com - бесплатно даётся 500 кредитов один раз.
  2. В claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json) добавьте:
   {
     "mcpServers": {
       "scrapegraph-mcp": {
         "command": "npx",
       }
     }
   }
  1. Полностью перезапустите Claude Desktop (Cmd+Q, не просто закрыть окно). В Settings → Developer должен появиться статус running у scrapegraph-mcp.
  2. В чате: «собери со страницы <ссылка> название компании, сайт и контакты через scrapegraph».
  3. Каждая страница с извлечением структурированных данных стоит около 6 кредитов (1 за разметку страницы плюс 5 за JSON-извлечение) - 500 бесплатных кредитов это примерно 80 страниц, дальше от 20 долларов в месяц за 10 000 кредитов.

Проверочный прогон

  • Вариант А: после запуска скрипта должен вернуться валидный JSON с полями из prompt, а не пересказ текстом. Если падает с ошибкой про соединение с Ollama - проверьте, что она вообще запущена: curl http://localhost:11434 должен ответить, а не отвалиться по таймауту.
  • Вариант Б: в Claude после подключения должен работать инструмент credits (показывает остаток) - если Claude отвечает, что у него нет доступа к scrapegraph, конфиг не подхватился, нужен именно полный перезапуск приложения.
  • В обоих случаях прогоните на реальном каталоге и вручную сверьте 2-3 найденные записи с оригиналом - на плотной вёрстке LLM-извлечение иногда путает соседние карточки местами.

Где применимо

  • Сбор списка компаний и контактов с открытых каталогов и агрегаторов под холодный аутрич - без построчного копирования и без оплаты за каждую найденную строку, как у готовых Apify-скрейперов.
  • Разовый или периодический мониторинг цен и ассортимента у конкурентов на страницах, которые меняются.
  • Прототип пайплайна лидогенерации, который потом можно перевести на облачный тариф той же компании, если объём вырастет и держать свою Ollama станет неудобно.

Оговорки

  • В том виде, как инструмент описан в заметке («сам ищет, проходит по каталогам, складывает в таблицу»), готового приложения нет - это библиотека для разработчика, а не сервис с одной кнопкой. Под конкретный каталог и промпт под него всё равно пишете сами, пусть и в 15-20 строк.
  • Сравнивать стоит честно: то, что бесплатно и локально (Python + Ollama), не подключается напрямую к Claude. То, что подключается к Claude через официальный MCP-сервер, идёт через платное облако той же компании. Заметка описывает это как одно и то же свойство инструмента - это не так.
  • Качество извлечения зависит от локальной модели: маленькие модели вроде llama3.2 на сложной вёрстке путают поля чаще, чем платные API того же OpenAI/Anthropic/Gemini, которые эта же библиотека тоже умеет вызывать - но тогда снова платите, только не ScrapeGraphAI, а поставщику модели за токены.
  • Юридическая сторона скрапинга каталогов, как обычно, остаётся на вас - ToS конкретного сайта никто не отменял.

Ссылки и ресурсы

  • ScrapeGraphAI (библиотека) - github.com/ScrapeGraphAI/Scrapegraph-ai, 31 400+ звёзд, лицензия MIT, последний коммит 25.09.2026 - живой и поддерживаемый проект. Установка: pip install scrapegraphai (PyPI, версия 2.3.0), бесплатно.
  • Документация - docs.scrapegraphai.com, там же официальные примеры с Ollama и разбор MCP-сервера.
  • MCP-сервер для Claude/Cursor - github.com/ScrapeGraphAI/scrapegraph-mcp, мост к облачному API, требует ключ с dashboard.scrapegraphai.com.
  • Облачный тариф ScrapeGraphAI - scrapegraphai.com/pricing: бесплатно 500 кредитов один раз, Starter 20 долларов в месяц (10 000 кредитов), Growth 100 долларов в месяц, Pro 500 долларов в месяц, разовые пакеты кредитов от 5 долларов.
  • Ollama - ollama.com, бесплатно, модели качаются локально одной командой (ollama pull llama3.2 и похожие).
  • Apify (упомянут как платная альтернатива) - apify.com; конкретные лид-скрейперы в его Store берут оплату за результат, например «Contractor Leads Scraper» - 8 долларов за 1000 найденных компаний. Это цена отдельного готового скрейпера, не общий тариф платформы.
  • Ultimate Web Scraper (сравнение, упомянутое в заметке) - разобран отдельно в этом блоге, статья от 24.08.2026.

Больше подобного

Разбираю по находке в день и складываю сюда. Свежее и то, что до сайта не доехало, выходит в канале «Евдокимов как обычно».