artem.matanovsky

artem.matanovsky

Привет! Разрабатываю бeкенды, сайты, ботов, активно пользуюсь AI инструментами и рассказываю об этом. Сюда скорее читать, чем продавать. Если пишу про своё — так и говорю, что своё.
Пикабушник
Дата рождения: 1 марта
105 рейтинг 0 подписчиков 0 подписок 1 пост 0 в горячем

Искал компании без сайта — в итоге написал два расширения, для Яндекс Карт и 2ГИС⁠⁠

Привет, Пикабу! Я — разработчик, делаю сайты, и MapsGrabs мой проект. Это два расширения для Chrome: одно для Яндекс Карт, второе для 2ГИС. Открываешь карту в браузере, вводишь запрос — расширение собирает сведения об организациях из открытой вкладки и складывает их в XLSX, который формируется прямо на компьютере. Сразу скажу честно: лидов, клиентов и готовой базы на обзвон тут не обещаю — ни я, ни сайт. Просто расскажу, зачем я это сделал и как оно устроено.

Всё началось с простой задачи: найти компании, которым нужен сайт. Не «плохой сайт», а отсутствующий. Таких хорошо видно на картах: организация есть — название, адрес, телефон, — а сайта в карточке нет.

Только поиск выглядел уныло. Вводишь запрос, идёшь по списку, открываешь карточку за карточкой и переписываешь в таблицу название, адрес, телефон. Следующая, ещё одна, ещё. Взгляд плывёт, теряешь, где остановился и кого уже записал. Долго, скучно, и в каждом ручном переносе прячется ошибка: то строка пропущена, то ячейка не та. В какой-то момент стало очевидно: это должна делать машина.

Так появилась первая версия расширения — для Яндекс Карт. Открываешь карту, вводишь запрос, а расширение подталкивает страницу подгружать следующие порции выдачи и складывает записи в файл. Потом захотелось то же самое для 2ГИС, и тут началось интересное: задача та же, а механика карт другая, выдачу приходится «докручивать» иначе. Поэтому вместо одного универсального парсера получилось два расширения — под каждую карту своё.

Принцип, который я для себя вывел: DOM — руль, JSON — источник. Расширение не вычитывает поля из текста карточек на экране. Оно слушает JSON-ответы, которые вкладка карты и так получает при поиске: там лежат названия, адреса, телефоны, сайты, рейтинги. А DOM нужен как руль — чуть прокрутить список, дождаться ответа, прокрутить ещё, чтобы карта отдала следующую порцию. От вёрстки такой подход зависит меньше, но хрупкость никуда не девается: карты меняют ответы и элементы управления, поэтому код приходится обновлять.

Сбор идёт проходами: сначала организации, потом — уже по собранным карточкам — отзывы и медиа. Данные копятся локально в расширении, XLSX собирается здесь же, на компьютере.

Демонстрационный экран со вкладками организаций, отзывов и медиа: счётчики на кадре не являются типичным результатом

Демонстрационный экран со вкладками организаций, отзывов и медиа: счётчики на кадре не являются типичным результатом

В одном старом файле из истории разработки лежало 47 организаций, и у двух из них поле «Сайт» оказалось пустым. Две пустые ячейки — и меня осенило: сколько вообще компаний живёт без сайта? Это же ровно те, кого я ищу: собираешь выдачу по нише и смотришь, у кого сайта нет. Оговорюсь сразу: это один файл и один момент, а не статистика. Какой процент бизнеса реально сидит без сайта, я не знаю и не измерял. Но как отправная точка идеи — сработало.

Демонстрационный экран: счётчики не являются типичным результатом

Демонстрационный экран: счётчики не являются типичным результатом

Теперь о границах — они важные

Отзывы в выгрузку попадают в маскированном виде: короткое превью без полного текста, автор вроде «И*** П***», оценка и месяц. Полный текст отзыва и имя автора я не сохраняю. С медиа ещё строже: сами фото и видео не копируются и не экспортируются, в файл попадает только их количество по типу на организацию. Никаких URL картинок и роликов в выгрузке нет. Копировать чужие отзывы и медиа я в инструмент сознательно не закладывал — это и некрасиво, и против правил источников.

И ещё одна деталь: перед первым запуском расширение попросит принять условия. Данные публичные и работать с ними нужно аккуратно, капчи и блокировки расширение не обходит и обходить их нельзя, рекламные обзвоны и рассылки без согласия адресата — тоже нельзя. Пока не подтвердишь и сервер не пришлёт «квитанцию» о согласии, сбор не стартует. Может, лишний клик — зато сразу видно, на что ты соглашаешься. Это не разрешение на любой сценарий, а фиксация границ: ответственность за использование выгрузки остаётся на тебе.

Пример выгрузки: только заголовки колонок XLSX, строк организаций нет

Пример выгрузки: только заголовки колонок XLSX, строк организаций нет

Что умеет и чего не умеет сам сбор

Расширение собирает организации по твоему запросу: телефоны, сайты, соцсети, адреса, рейтинги — эти колонки есть в выгрузке. Но что реально заполнится, зависит от того, что источник отдаст в конкретном запуске. Выгрузка — заготовка для проверки и чистки, а не готовая база клиентов. «Соберёт всех» я не обещаю: таких измерений не делал. И повторю: встроенной рассылки, обзвона и интеграций с CRM в расширении нет. Оно снимает ручной перенос карточек в таблицу, но не решает за человека, как использовать выгрузку и с кем работать.

Отдельно про приватность: карточки, поисковый запрос и содержимое выгрузки на сервер не передаются. На сервере оседает только лицензионный ключ и служебная информация — версия расширения и диджесты принятых документов. Всё остальное живёт в твоём браузере.

Если задача тебе знакома — на mapsgrabs.ru можно проверить свой запрос: первые 50 организаций выгружаются бесплатно, без банковской карты и без личного кабинета. Один ключ действует для обоих расширений.


И вопросы тем, кто реально работает с такими таблицами: каких колонок вам не хватает в выгрузке? В каком формате удобнее было бы импортировать — или XLSX и так ок? На каких запросах сбор ведёт себя хуже всего? По этим ответам я и исправлю следующие версии.

Показать полностью 3
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества