Свой сборщик контактов на ScrapeGraphAI: три урока от установки до автозапуска
Три урока, за которые собирается свой сборщик контактов на открытой библиотеке ScrapeGraphAI. Первый урок ставит систему и достаёт данные с одной страницы, второй проходит по каталогу компаний и складывает всё в таблицу, третий ставит сбор на автозапуск и подключает его к агенту. Внутри готовые куски кода под копирование и раздел про то, что собирать можно, а что нельзя.
Что это и почему оно бесплатное
ScrapeGraphAI это библиотека на Python, которая соединяет обычный сбор данных со страниц и языковую модель. Ты пишешь словами, что нужно достать, и даёшь адрес страницы. Разбором вёрстки занимается модель, поэтому под каждый сайт свой разборщик писать не приходится.
- Библиотека открытая и бесплатная, лицензия MIT.
- Работает на твоём компьютере, данные никуда не уходят.
- Модель подключается любая. Локальная через Ollama обходится в ноль, облачная берёт оплату за объём текста.
- Ссылка на проект: github.com/ScrapeGraphAI/Scrapegraph-ai
Урок 1. Установка и первый сбор с одной страницы
Ставим три вещи: саму библиотеку, браузерный движок для загрузки страниц и локальную модель.
Шаг 1. Библиотека и браузер
Шаг 2. Локальная модель
Поставь Ollama с сайта ollama.com, затем скачай модель командой ниже. Она весит около двух гигабайт.
Шаг 3. Первый сбор
Создай файл sbor.py, вставь код целиком и запусти его командой python sbor.py. Меняй только адрес и запрос.
Урок 2. Каталог компаний и таблица
Одна страница это проверка. Смысл появляется, когда система проходит каталог и складывает результат в таблицу.
- Найди каталог своей ниши, где компании лежат списком: отраслевой справочник, участники выставки, площадка объявлений.
- Собери адреса карточек. Первым заходом достань со страницы списка все ссылки на карточки, тем же способом из первого урока.
- Пройди по карточкам циклом и на каждой запусти сбор нужных полей.
- Складывай результат в таблицу построчно, сразу после каждой карточки. Тогда обрыв на середине не съест уже собранное.
Код, который дописывает строки в таблицу
Урок 3. Автозапуск и связка с агентом
Система становится рабочей, когда запускается сама и приносит свежие строки каждое утро.
- Оформи сбор одним файлом, который принимает адрес каталога и пишет в таблицу с датой в имени.
- Поставь его на ежедневный запуск планировщиком: на Windows это Планировщик заданий, на сервере обычная запись в расписании.
- Добавь проверку на повторы по телефону и почте, тогда таблица не будет пухнуть от одних и тех же компаний.
- Подключи агента. У проекта есть готовый разъём MCP, его адрес лежит в описании проекта на GitHub, в разделе про интеграции. После подключения агент запускает сбор словами и сразу приводит таблицу в порядок.
Что собирать можно и что нельзя
Тема выглядит безобидной, поэтому границу называю прямо.
- Открытые контакты компаний, которые организация сама опубликовала для связи, собирать можно.
- Личные данные людей это отдельная история. Домашние адреса, личные телефоны, данные из закрытых разделов трогать нельзя.
- Смотри условия самого сайта. Прямой запрет на автоматический сбор в правилах площадки означает, что сбор нарушает договор с ней.
- Собранный контакт не даёт права на рассылку. Массовая рассылка без согласия человека это спам, и отвечает за неё отправитель.
- Рабочий порядок такой: собрал контакт, написал одно человеческое письмо по делу, получил отказ, удалил из базы.
Чек-лист
- Библиотека, браузерный движок и локальная модель установлены.
- Сбор с одной страницы даёт верные поля.
- Ссылки на карточки каталога собраны отдельным заходом.
- Таблица пишется построчно, между карточками стоит пауза.
- Повторы отсеиваются по телефону и почте.
- Автозапуск поставлен после ручной проверки одного прогона.
- Источник проверен на запрет автоматического сбора.
Читать дальше в блоге
Эту тему я разбираю подробно в статье как набрать подписчиков в Instagram с нуля. Там же лежат остальные разборы про рост в Instagram.
Я собрал систему, по которой обычный человек запускает блог с нуля и набирает аудиторию без съёмок, монтажа и команды. Внутри разбор, с которого стартовал сам.
Открыть разбор: с чего начать→