Что это
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 на самом деле два разных продукта, и заметка их не различает:
- Открытая библиотека, которую вы запускаете сами. Полный контроль, можно держать данные у себя, можно подключить локальную модель через Ollama, тонко настроить расходы. Именно тут «локально и бесплатно» - правда.
- Облачный API с кредитами. Ноль инфраструктуры, готовый обход антибот-защиты, встроенный краулер по всему каталогу и мониторинг изменений по расписанию - но за это платите кредитами. MCP-сервер для Claude ходит именно сюда, а не в вашу локальную установку.
Для по-настоящему бесплатного сбора лидов подходит только первый путь. Автоматический обход всех страниц каталога одним параметром (total_pages в терминах их документации) - фича именно облачного API; в открытой библиотеке многостраничность делаете сами - через SmartScraperMultiGraph со списком URL, который собираете сами (например, страницы 1, 2, 3 каталога).
Как повторить
Вариант А - по-настоящему бесплатно и локально, без Claude
- Установите библиотеку и браузерный движок:
pip install scrapegraphai
playwright install- Поставьте Ollama (ollama.com) и скачайте модель, например:
ollama pull llama3.2Модель весит несколько гигабайт, качается один раз, дальше работает офлайн.
- Напишите скрипт
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))- Запустите
python extract_leads.py. Первый запуск дольше обычного - Ollama грузит модель в память. - Если у каталога несколько страниц, замените на
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()- Результат - обычный Python dict/JSON. Чтобы получить таблицу:
import pandas as pd; pd.DataFrame(result["...ваше поле со списком..."]).to_csv("leads.csv").
Вариант Б - через Claude по MCP (платно, для сравнения с вариантом А)
- Заведите ключ на dashboard.scrapegraphai.com - бесплатно даётся 500 кредитов один раз.
- В
claude_desktop_config.json(macOS:~/Library/Application Support/Claude/claude_desktop_config.json) добавьте:
{
"mcpServers": {
"scrapegraph-mcp": {
"command": "npx",
}
}
}- Полностью перезапустите Claude Desktop (Cmd+Q, не просто закрыть окно). В Settings → Developer должен появиться статус running у scrapegraph-mcp.
- В чате: «собери со страницы <ссылка> название компании, сайт и контакты через scrapegraph».
- Каждая страница с извлечением структурированных данных стоит около 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.