携程 & Trip.com 酒店评论数据抓取工具

无需 API、无需登录、无需自建反爬,批量提取携程(Ctrip)和 Trip.com的酒店评论数据。一次运行即可同时覆盖两个平台,输出干净的结构化 JSON / CSV,直接用于分析、AI 与市场研究。

能抓取哪些字段

每条评论包含 24 个字段,涵盖酒店声誉与竞品分析所需的核心数据:

典型用途

如何使用

零代码:打开 Apify 上的携程 / Trip.com 评论抓取工具,粘贴酒店页面链接,点击运行,几十秒后即可在 Output 标签下载 JSON / CSV / Excel。新账户可用 Apify 的 5 美元免费额度试跑(约 1,250 行)。

API / Python:通过 apify-client 以编程方式调用同一个 Actor,可定时运行并将结果推送到数据库或数据仓库。

价格

按结果计费:每 1,000 条评论 $4(Business 档降至每 1,000 条 $2.50),无启动费、无订阅,仅按实际抓取量付费。

为什么自己抓取携程和 Trip.com 很难

  1. 没有公开的评论 API。携程集团不对外提供,因此抓取公开页面是唯一途径。
  2. 这是两套系统,不是一套。trip.com(国际)和 hotels.ctrip.com / 携程(国内)的结构和语言都不同;为其中一个写的爬虫通常抓不到另一个,而携程的评论池往往更大。
  3. 中文评论需要翻译才能进入英文分析流程,这是额外的一步。
  4. 反爬和频率限制在两端都存在。

三种获取方式

自己用 Python携程 / Trip.com Actor官方 API
搭建时间数小时到数天约 30 秒无(没有公开评论 API)
同时抓两端需写两个爬虫一次运行不适用
中文评论翻译需自己加翻译内置不适用
子评分 + 酒店回复解析嵌套结构支持不适用
成本代理 + 人力按结果计费不适用
适合场景一次性抓取定时、规模化不是可选项

方案 A:用 Python 自己抓

直接请求酒店页面,通常拿到的是被拦截或只有 JavaScript 外壳的页面:

import httpx

url = "https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/"
r = httpx.get(url, headers={"User-Agent": "Mozilla/5.0"})
print(r.status_code)   # 挑战页 / JS 外壳,评论不在 HTML 里

评论通过内部接口加载,需要逐个站点逆向接口、统一两套返回结构、再翻译中文。抓一家酒店可以,定时抓一批就很累。

方案 B:用 API 一次搞定两端

通过 apify-client 调用同一个 Actor,一次运行同时读取两端,并返回已翻译好的结构化 JSON:

from apify_client import ApifyClient

client = ApifyClient("<你的_APIFY_TOKEN>")
run = client.actor("factden/ctrip-trip-reviews-scraper").call(run_input={
    "startUrls": [
        "https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/",
        "https://hotels.ctrip.com/hotels/1286148.html"
    ],
    "maxReviewsPerHotel": 200,
    "sortBy": "mostRecent",
})
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(review["source"], review["overallRating"], review["travelType"])

两种链接可以混在一起传入;sortBy 支持 mostRelevant / mostRecent / ratingHighToLow / ratingLowToHigh,还可用 fromDate / toDateminRating / maxRating 限定范围。

示例数据(携程中文评论,已翻译)

{
  "source": "ctrip",
  "hotelName": "银河酒店",
  "overallRating": 5,
  "ratingLabel": "超棒",
  "subRatings": ["清洁: 5.0", "位置: 5.0", "服务: 5.0", "设施: 5.0"],
  "language": "zh",
  "reviewText": "酒店很棒,服务一流,位置方便。",
  "reviewTextTranslated": "Great hotel, first-class service, convenient location.",
  "isMachineTranslated": true,
  "travelType": "家庭",
  "ownerResponse": {"text": "感谢您的正面评价...", "date": "2026-06-15"}
}

常见问题

抓取携程或 Trip.com 合法吗?
评论是公开可见的。和任何抓取一样,请遵守网站服务条款和当地法规(尤其是个人信息相关规定),合理使用数据。
携程 / Trip.com 有官方评论 API 吗?
没有面向公众的。抓取公开页面是大多数团队的唯一途径。
中文评论能拿到英文翻译吗?
可以。携程评论附带 reviewTextTranslatedisMachineTranslated 标记,同时保留原文。
可以一次同时抓取 Trip.com 和携程吗?
可以,这正是重点。把两种链接混在一起传入,输出使用同一套结构,并用 source 字段标注来源。
如何避免被封禁?
使用住宅代理、放慢请求频率,或使用能按站点读取内部接口的工具。普通请求会被挑战拦截。

想先看数据样本? 下载 免费的携程 / Trip.com 评论数据样本(216 条真实评论,24 个字段),或直接 运行在线工具抓取任意酒店的最新评论。

English version: How to scrape Trip.com & Ctrip hotel reviews.