Иллюстрация скрапера Website ContactsПочта, телефоны и соцсети

Скрапер Website Contacts.

Начните со списка сайтов компаний. Соберите опубликованные каналы связи и сгруппируйте соцсети, чтобы команда располагала не только доменом.

Запустить на Apify

Как использовать этот скрапер.

Попробуйте эти сценарии для маркетинга, роста и изучения конкурентов.

01

Добавьте контакты в список потенциальных партнёров

Если уже изучили потенциальных продавцов, соберите их открытые каналы. Выберите подходящий для предложения партнёрства.

Ведите таблицу по домену с опубликованными контактами и соцсетями.

02

Дополните исследование компаний для агентства

Начните со списка доменов категории из Google Search. Проверьте сайты, соберите профили и изучите аудиторию и позиционирование компаний.

Добавьте исходные страницы и заметки к списку компаний.

03

Проверьте контакты своих сайтов

Для бизнеса с несколькими брендами проверьте почту, телефоны и соцсети каждого сайта. Обсудите пропуски и устаревшие ссылки с владельцами сайтов.

Сохраните аудит контактов со ссылками на проверенные страницы.

ОТ ПЕРВОГО ЗАПУСКА К РЕГУЛЯРНОЙ РАБОТЕ

Первый запуск, шаг за шагом.

  1. Откройте Actor на Apify, выберите Input и перейдите в редактор JSON, чтобы вставить конфигурацию.
  2. Добавьте две проверенные ссылки в startUrls. Замените примеры компаниями из своего списка. Если основной сайт компании известен, используйте его вместо ссылки на социальный профиль.
  3. Начните с восьми страниц на сайт и maxResults 2. Оставьте skipSitesWithoutContacts false, чтобы видеть и сайты без контактов. По умолчанию прокси не нужен; добавляйте его, если источник этого требует.
  4. Запустите Actor и посмотрите журнал. Проверьте распознанные цели и фильтры, прежде чем считать пустой результат отсутствием данных.
  5. Откройте Storage → Dataset, проверьте несколько записей и экспортируйте вложенные данные в JSON или таблицу для первого просмотра в CSV.
Конфигурация первого запуска
{
  "startUrls": ["https://apify.com", "https://www.iana.org"],
  "maxPagesPerSite": 8,
  "maxResults": 2,
  "skipSitesWithoutContacts": false
}

Вставьте это в редактор JSON Actor. Перед запуском замените примеры своими целями.

Посмотреть актуальные параметры на Apify

Выберите способ поиска.

Скрапер посещает сайт и отдаёт приоритет страницам с публичными контактами. По возможности указывайте проверенные ссылки. По названию компании домен может быть угадан, поэтому нужно дополнительно проверить принадлежность сайта.

Способ поискаКогда использоватьЧто меняется
Домены сайтовКогда использоватьВы точно знаете, по какому объекту хотите собрать данные.Что меняетсяСсылки сайтов или домены строками или объектами с url. Каждый сайт проверяется отдельно. Названия и профили могут превратиться в предполагаемые домены; используйте проверенные сайты.
Поиск по названию компанииКогда использоватьВы хотите найти подходящие результаты, прежде чем выбрать конкретные цели.Что меняетсяОдин сайт вместе со startUrls или вместо него. Деловой email может быть прочитан как домен, но проверенный сайт понятнее.
Глубина обходаКогда использоватьВам нужен больший охват, и вы готовы увеличить объём сбора.Что меняетсяОт 1 до 100 страниц на сайт, по умолчанию 8. Приоритет у контактов, юридической информации, описания компании, команды и поддержки. Увеличивайте для больших сайтов, а не числа доменов.

Важное различие

Ограничивает записи сайтов, не email-адреса или страницы. Обычно домен даёт одну запись со списками контактов. Пусто обрабатывает весь список.

Сравнить с похожим скрейпером

Все параметры с объяснениями.

Используйте точные имена полей ниже в JSON. В форме Apify вводите элементы списков отдельно и соблюдайте числовые и логические типы.

Значение по умолчанию и предзаполнение различаются. Первое действует при пропуске настройки; второе является примером в форме Apify. Проверяйте цели и лимиты перед каждым запуском. У некоторых настроек нет значения по умолчанию в схеме. Всё равно нужно указать хотя бы одну поддерживаемую цель.

Цели и поисковые запросы2
startUrls
СписокПример в форме: ["https://apify.com","https://www.iana.org"]

Ссылки сайтов или домены строками или объектами с url. Каждый сайт проверяется отдельно. Названия и профили могут превратиться в предполагаемые домены; используйте проверенные сайты.

url
Текст

Один сайт вместе со startUrls или вместо него. Деловой email может быть прочитан как домен, но проверенный сайт понятнее.

Лимиты, подробности и прокси7
maxPagesPerSite
Целое числоПо умолчанию: 8

От 1 до 100 страниц на сайт, по умолчанию 8. Приоритет у контактов, юридической информации, описания компании, команды и поддержки. Увеличивайте для больших сайтов, а не числа доменов.

maxResults
Целое число

Ограничивает записи сайтов, не email-адреса или страницы. Обычно домен даёт одну запись со списками контактов. Пусто обрабатывает весь список.

skipSitesWithoutContacts
Истина или ложьПо умолчанию: false

true исключает прочитанные сайты без контактов, false сохраняет пустые записи для проверки охвата. Недоступные или заблокированные сайты , отдельные ошибки, не доказательство отсутствия контактов.

maxConcurrency
Целое числоПо умолчанию: 5

От 1 до 20 сайтов одновременно, по умолчанию 5. Параллелит разные хосты, а не страницы одного сайта. Сохраняйте паузу для каждого сайта.

delayMs
Целое числоПо умолчанию: 300

Пауза в миллисекундах между запросами одного сайта. Не останавливает другие параллельные сайты. По умолчанию 300 , хорошая отправная точка.

requestTimeoutSecs
Целое числоПо умолчанию: 20

Ожидание страницы от 5 до 120 секунд, по умолчанию 20. Увеличивайте для медленных сайтов, уменьшайте для быстрой проверки. Это не общий срок Actor.

proxyConfiguration
ОбъектПо умолчанию: {"useApifyProxy":false}

Для обычных публичных бизнес-сайтов необязателен; по умолчанию без прокси. Пробуйте для больших списков или отказов и не считайте заблокированные сайты пустыми.

Дополнительные настройки и восстановление3
resume
Истина или ложьПо умолчанию: true

Сохраняет прогресс примерно каждые 30 секунд для продолжения после перезапуска или миграции Apify. Обычно оставляйте включённым.

continueFromLastRun
Истина или ложьПо умолчанию: false

Продолжает незавершённую работу предыдущего запуска с теми же входными данными. Старые результаты остаются в его dataset. Для нового или регулярного сбора оставляйте false.

impersonate
ТекстПо умолчанию: chrome131

Идентификатор браузера для запросов. Сохраняйте стандарт Actor, кроме диагностики мгновенных блокировок. Он меняет отпечаток запроса, а не запрашиваемые данные.

Справочник соответствует параметрам Actor. Перед изменением рабочего процесса проверьте актуальную форму. Посмотреть актуальные параметры на Apify.

Готовые конфигурации.

Каждый пример рассчитан на отдельный запуск. Начните с малого, проверьте результаты и затем расширяйте охват. Измените цели, страны и даты под свою задачу.

Проверка списка компаний с известными сайтами

Соберите публичные контакты четырёх известных доменов, до восьми страниц каждого. Сохраняйте пустые строки для проверки охвата. Перед запуском замените примеры своим списком для исследования.

Проверка списка компаний с известными сайтами
{
  "startUrls": [
    "https://apify.com",
    "https://www.iana.org",
    "https://www.python.org",
    "https://www.getdbt.com"
  ],
  "maxPagesPerSite": 8,
  "maxResults": 4,
  "skipSitesWithoutContacts": false
}

Более глубокий обход нескольких сайтов

Увеличьте бюджет до 20 страниц для двух доменов, если контакты распределены по сайту. Actor отдаёт приоритет вероятным контактным страницам; больший бюджет всё равно не означает обход всех URL сайта.

Более глубокий обход нескольких сайтов
{
  "startUrls": ["https://apify.com", "https://www.getdbt.com"],
  "maxPagesPerSite": 20,
  "maxResults": 2,
  "skipSitesWithoutContacts": false,
  "maxConcurrency": 2,
  "delayMs": 500
}

Экспорт только сайтов с контактами

Задайте skipSitesWithoutContacts true для списка с контактами. Сначала проверьте запуск с false: удаление пустых строк удобно для экспорта, но скрывает часть картины охвата.

Экспорт только сайтов с контактами
{
  "startUrls": [
    "https://apify.com",
    "https://www.iana.org",
    "https://www.python.org",
    "https://www.getdbt.com"
  ],
  "maxPagesPerSite": 8,
  "maxResults": 4,
  "skipSitesWithoutContacts": true
}

Запускайте, проверяйте, экспортируйте, повторяйте.

Ожидайте одну запись на сайт с массивами публичных email, телефонов и социальных профилей. Пустые массивы могут означать отсутствие контактов, блокировку или контент JavaScript, который HTTP-скрапер не отображает. Проверьте логи и страницы перед выводом о недоступности компании. Проверяйте угаданные домены перед объединением со списком компаний.

  1. Проверьте набор данных и запись SUMMARY. Сравните количество с лимитом, изучите ошибки и пропущенные входные данные, проверьте несколько исходных ссылок.
  2. Сохраняйте исходные ID и добавляйте collected_at и run_id. Используйте CSV для простых столбцов, JSON для списков и вложенных подробностей.
  3. Сохраните проверенную конфигурацию как Apify Task и задайте расписание. Для регулярных снимков оставьте continueFromLastRun false. Убирайте дубликаты по ID, сохраняя даты наблюдений.
  4. В Make или n8n дождитесь завершения запуска, получите dataset и сопоставьте поля с Sheets или хранилищем. Передавайте данные в Looker Studio через таблицу отчётов; преобразуйте и проверяйте модели с dbt.
  5. Этот же JSON работает с API Actors Apify. В Claude с Apify MCP назовите Actor, попросите проверить схему и заранее задайте цели, рынки и лимиты результатов.

Продолжение не создаёт новый снимок

resume защищает текущий запуск при перезапуске Apify. continueFromLastRun продолжает предыдущий запуск с той же конфигурацией; старые записи остаются в старом dataset. Объедините оба набора и увеличьте достигнутый лимит. Для наблюдения сегодняшних изменений начните новый сбор.

Открыть инструкции для Sheets, Claude, Looker и BigQuery
Запуск Actor через API

Сохраните одну из конфигураций выше в input.json. Задайте в терминале APIFY_TOKEN своим токеном Apify и отправьте файл как тело запроса.

Запустить сбор
curl --fail-with-body --request POST \
  --url "https://api.apify.com/v2/actors/jmlp~web-contact-scraper/runs" \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header "Content-Type: application/json" \
  --data-binary @input.json

Ответ содержит ID запуска и defaultDatasetId, а не готовые результаты. Дождитесь успешного завершения, задайте DATASET_ID идентификатором набора и получите записи. Для больших наборов используйте limit и offset для постраничной выгрузки.

Получить набор данных
curl --fail-with-body \
  --url "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  --header "Authorization: Bearer $APIFY_TOKEN"

Документация API Apify для запуска и экспорта
Параметры экспорта набора данных

Если результаты выглядят неверно.

Меняйте по одному параметру, сохраняйте небольшой лимит и проверяйте сводку перед расширением сбора.

Название компании привело на другой сайт.

Ссылки сайтов или домены строками или объектами с url. Каждый сайт проверяется отдельно. Названия и профили могут превратиться в предполагаемые домены; используйте проверенные сайты.

На сайте есть контакты, но результат пустой.

Ожидайте одну запись на сайт с массивами публичных email, телефонов и социальных профилей. Пустые массивы могут означать отсутствие контактов, блокировку или контент JavaScript, который HTTP-скрапер не отображает. Проверьте логи и страницы перед выводом о недоступности компании. Проверяйте угаданные домены перед объединением со списком компаний.

Некоторые исходные сайты отсутствуют в наборе данных.

true исключает прочитанные сайты без контактов, false сохраняет пустые записи для проверки охвата. Недоступные или заблокированные сайты , отдельные ошибки, не доказательство отсутствия контактов.

Запуск завершился успешно, но данных нет

Успешный статус означает завершение работы Actor, а не наличие данных у источника. Проверьте SUMMARY.inputProblem, SUMMARY.problem и журнал: возможны отсутствующие цели, неподдерживаемые фильтры или отклонённые запросы. Попробуйте известную цель с меньшим числом фильтров.

Записей меньше, чем ожидалось

Проверьте общие лимиты, лимиты поиска и страниц, охват и дедупликацию. Несколько запросов могут найти одну запись. Счётчик источника может включать недоступные публично данные. Проверьте незавершённые задачи, прежде чем считать набор полным.

Используйте результаты в своих инструментах.

Google Sheets

Объединяйте по нормализованному домену. Поместите массивы контактов в отдельные колонки и добавьте предпочтительный канал, релевантность и источники.

Читать инструкцию
Claude + MCP

Попросите Claude упорядочить каналы по сетям и отметить пропуски или неоднозначность. Общая почта не идентифицирует человека, а публикация адреса не подтверждает доставляемость.

Читать инструкцию
Looker Studio

Покажите домены с почтой, телефоном или LinkedIn. Сохраняйте ошибки в отчёте, чтобы отличать отсутствие данных от отсутствия каналов.

Читать инструкцию
BigQuery + dbt

Сохраняйте запись на домен и запуск со временем. Через UNNEST разверните почту, телефоны и профили в отдельные таблицы, сохранив исходные страницы.

Читать инструкцию
Скопировать запрос для Claude
Запрос для Claude + Apify MCP
Проверь jmlp/web-contact-scraper и запусти для https://apify.com, не более восьми страниц на сайт. Упорядочь открытую почту, телефоны и профили, укажи страницы и ошибки или пропуски каналов. Не утверждай, что доставляемость проверена.

Какие поля вы получите.

Сохраняйте время сбора и исходные ID: они нужны для проверки источника результата и сравнения с последующими запусками.

Прежде чем делать выводы

Собирает опубликованные контакты, не раскрывает личные данные и не проверяет доставляемость. Некоторые сайты не дают контактов. Изучите ошибки и источники перед выбором канала для уместного обращения.

domain / url
Ключ удаления дублей и конечный адрес сайта.
emails / phones
Опубликованные адреса почты и телефоны.
socials / socials_by_network
Открытые профили с группировкой по сетям.
has_contact
Показывает, найден ли хотя бы один открытый канал связи.
pages / pages_crawled
Охват сбора и посещённые страницы.
errors
Проблемы сбора, требующие проверки.

Частые вопросы.

Он проверяет доставляемость почты?

Нет. Он извлекает опубликованные адреса. Проверка доставляемости является отдельным процессом.

Можно связать его с результатами Google Search?

Да. Проверьте сайты, нормализуйте домены и используйте проверенный список. Контролируйте восстановленные URL перед передачей другому скраперу.

Источник и актуальные сведения: Actor Website Contacts от JMLP на Apify.

Другие скраперы,
которые могут пригодиться.

Поговорим о
вашем проекте.

Расскажите, что нужно собрать или понять. Я помогу со скрапером на заказ, конвейером или анализом.

Обсудить проект