mcpField
A
apify-booking-host-leads

apify-booking-host-leads

github.com/apify营销与增长28389 次安装5 周前更新
代码仓库

关于 apify-booking-host-leads

该技能将 Booking.com 住宿搜索结果整理为房东或物业运营方线索,面向需要联系住宿经营者的用户。它优先使用 Booking.com 的商家披露信息,再逐级补充联系方式和网站,并保留房源链接及评分信息。

主要功能

  1. 01从 Booking.com 搜集住宿线索
  2. 02优先提取商家披露的联系方式
  3. 03按缺失信息逐级补充网站与联系方式
  4. 04输出含来源和房源质量信息的表格

适用场景

  1. 01为目标城市住宿经营者建立联系名单
  2. 02查找物业管理方的邮箱和电话
  3. 03按评分及评论数筛选潜在合作对象

MCP 相关

该技能说明 Apify MCP server 和 MCP 客户端可作为调用 Apify Actors 的替代方式。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/apify/awesome-skills --skill apify-booking-host-leads

安装后在 Claude Code 中输入/apify-booking-host-leads确认已加载。

附带文件references/gotchas.md

详细介绍

Booking.com 房东与运营方线索查找器

将 Booking.com 目的地搜索结果整理成一张清晰的表格,列出住宿房东/物业管理方及其真实联系信息。

核心要点

抓取 Booking.com 时,房东的联系邮箱有时已经包含在数据中,位于 traderInfo(交易方透明度披露)下。但这取决于地区:欧盟地区数据丰富(苏黎世公寓:80%),澳大利亚也很丰富(墨尔本公寓:在 50 套房源的测试中为 82%),亚洲地区也逐渐增多(截至 2026 年 6 月,北京公寓为 65%,通常是 QQ、163 或 Gmail 邮箱,另附中国公司名称)。美国和英国的相关数据历来较少。简单串联使用 Google Maps 邮箱抓取器,只找到约 10% 的邮箱,而且经常匹配到错误的企业。

因此应使用瀑布式流程:先尝试成本最低的数据源,仅对仍缺少联系信息的线索使用成本更高的数据源。绝不要一开始就使用 Google Maps 邮箱提取器。

层级来源可获取信息触发条件
1Booking traderInfo邮箱、电话、公司始终使用(免费,已抓取)
2Google Maps Email Extractor(按名称搜索)邮箱、电话、社交账号、网站线索仍没有邮箱
3Google Search(按名称搜索)候选网站线索仍没有网站
4网站联系信息抓取器(针对该网站)邮箱/电话/社交账号线索有网站,但仍没有邮箱

前置条件

工作流

  1. 收集输入信息。 向用户询问:目的地(城市/地区)、物业类型(公寓/招待所/度假屋/别墅最能找到独立运营方;none = 全部)、房源数量上限,以及输出格式(CSV / JSON / Google Sheet)。
  2. 层级 1 - 抓取 Booking.com。 运行 voyager/booking-scraper。根据 traderInfo 和 hostInfo 为每套房源创建一行线索(参见下文的映射)。将 traderInfo.email 不为空的行标记为 contactSource: booking-trader。
  3. 层级 2 - Google Maps(仅处理仍缺少邮箱的行)。 运行 lukaskrivka/google-maps-with-contact-details,并设置 searchStringsArray = ["<name>, <destination>", ...]。填入邮箱/电话/社交账号,并记录其返回的任何网站。将已填充的行标记为 google-maps。
  4. 层级 3 - Google Search(仅处理仍缺少网站的行)。 运行 apify/google-search-scraper,为每条线索使用一个搜索词("<name> <city> official website")。将第一个非 OTA/非社交网站的 organicResults[].url 作为候选网站。
  5. 层级 4 - 抓取网站(仅处理有网站但没有邮箱的行)。 默认使用 vdrmota/contact-info-scraper(确定性抓取,每个网站约 14 秒)。也可选择使用 apify/ai-web-scraper,并提示其查找邮箱/电话/联系表单 URL;但实测中速度较慢,而且在多个网站上失败,因此优先使用联系信息抓取器。将已填充的行标记为 website-contact(或 website-ai)。限制抓取数量以控制成本。
  6. 交付结果。 每套房源输出一行。报告总行数、有邮箱的比例,以及 contactSource 分布。仍为空的行保留 BookingURL(可通过 Booking 消息联系)。
映射(预订项目 → 潜在客户行)
输出列来源字段
name、type、address、city、country、rating、ratingLabel、stars、reviews、BookingURL顶层 Booking 字段(address.full、address.city、address.country、rating、ratingLabel、reviews、url)
email、phonetraderInfo.email / traderInfo.phone → 回退至 Google Maps 的 emails[0] / phones[0]
companyName、registrationNumber、traderAddresstraderInfo.companyName / .registrationNumber / .address
hostName、managedPropertieshostInfo.name / hostInfo.managedProperties(运营方规模信号)
website、socials仅回退至 Google Maps;排除 OTA 域名(booking.com、agoda、expedia 等)
contactSourcebooking-trader | google-maps | none

在输出中,将 email 和 phone 紧接在 address 后面。

每条潜在客户记录都必须返回 BookingURL(房源链接)、rating、ratingLabel(例如“优秀”“卓越”)和 reviews(评价数量)。这些信息为每一行提供独立的质量信号,因此无需重新打开 Booking,即可对潜在客户进行排序和优先级划分。

Actor 路由

瀑布流层级Actor ID维护者最适用场景
1 - Booking + 商家联系信息voyager/booking-scraper社区主要方案。 traderInfo 包含房东的邮箱/电话/公司信息
2 - 按名称查找邮箱/社交媒体/网站lukaskrivka/google-maps-with-contact-details社区获取 Booking 未公开的邮箱;也会返回网站
3 - 查找网站apify/google-search-scraperapifyMaps 中没有网站时,查找房东的官方网站
4 - 从网站提取信息(默认)vdrmota/contact-info-scraper社区确定性地提取邮箱/电话/社交媒体信息;快速且可靠
4 - 从网站提取信息(备选)apify/ai-web-scraperapify通过提示词使用大模型提取;灵活,但测试中速度较慢且可靠性较低

在可用时,优先选择由 apify 维护的 Actor。

调用 Actor — Apify CLI

每次调用都带上这三个标志(--json、--user-agent、2>/dev/null):

# 1. 抓取 Booking.com
apify actors call "voyager/booking-scraper" \
  -i '{"search":"Melbourne","maxItems":50,"propertyType":"Apartments","currency":"USD","language":"en-us","sortBy":"distance_from_search","rooms":1,"adults":2}' \
  --json \
  --user-agent apify-awesome-skills/apify-booking-host-leads \
  2>/dev/null

# 第 2 层 - 为没有 traderInfo 邮箱的名称补充信息
apify actors call "lukaskrivka/google-maps-with-contact-details" \
  -i '{"searchStringsArray":["<name>, Melbourne"],"locationQuery":"Melbourne","maxCrawledPlacesPerSearch":1,"language":"en"}' \
  --json \
  --user-agent apify-awesome-skills/apify-booking-host-leads \
  2>/dev/null

# 第 3 层 - 为仍未找到网站的线索查找网站
apify actors call "apify/google-search-scraper" \
  -i '{"queries":"<name> Melbourne official website","maxPagesPerQuery":1,"resultsPerPage":5,"countryCode":"us","languageCode":"en"}' \
  --json \
  --user-agent apify-awesome-skills/apify-booking-host-leads \
  2>/dev/null

# 第 4 层 - 使用 AI 从网站提取联系邮箱/表单 URL
# (根据 Actor 的输入架构确认提示词/指令字段名称)
apify actors call "apify/ai-web-scraper" \
  -i '{"startUrls":[{"url":"<website>"}],"prompt":"Extract the contact email, phone, and contact-form URL. Return JSON keys: email, phone, contactFormUrl."}' \
  --json \
  --user-agent apify-awesome-skills/apify-booking-host-leads \
  2>/dev/null

# 查看输入架构/获取结果
apify actors info "voyager/booking-scraper" --input --json \
  --user-agent apify-awesome-skills/apify-booking-host-leads 2>/dev/null
apify datasets get-items DATASET_ID --format json \
  --user-agent apify-awesome-skills/apify-booking-host-leads 2>/dev/null

Apify MCP 服务(https://mcp.apify.com)和任何 MCP 客户端(例如 mcpc)都是等效的替代方案。

故障排除

  • 未返回邮箱 → 你可能读的是 Google Maps 输出,而不是 traderInfo。请先重新检查 Booking 条目的 traderInfo 字段。
  • 邮箱对应的商家不正确 → 这是 Google Maps 回退匹配到了一个通用地点。请信任 contactSource: booking-trader 行;将 google-maps 行视为置信度较低。
  • 许多行的 contactSource: none → 这些房东未公开商家信息,也没有匹配的 Google Business。使用 BookingURL 通过 Booking 联系,或接受邮箱为空。
  • 运行成本上升 → 完全跳过 Google Maps 回退;仅 traderInfo 就能覆盖约 80%。
  • 成本说明请参阅 references/gotchas.md。

评论

支持 Markdown