Trip.com & Ctrip Reviews Scraper - Hotel Ratings & Text avatar

Trip.com & Ctrip Reviews Scraper - Hotel Ratings & Text

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Trip.com & Ctrip Reviews Scraper - Hotel Ratings & Text

Trip.com & Ctrip Reviews Scraper - Hotel Ratings & Text

Scrape Trip.com and Ctrip hotel reviews worldwide. Extract guest ratings, full review text with AI translations, category scores, traveler type, room booked, reviewer photos and videos, plus hotel rating summary and AI overview by hotel URL or ID. Export JSON, CSV, Excel.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Trip.com & Ctrip Reviews Scraper — Hotel Ratings, AI Translations, Category Scores & Photos

The most complete Trip.com and Ctrip hotel-review extractor on Apify. Pull real guest reviews from Trip.com Group — the largest online travel company in Asia and one of the biggest in the world — with the full review text plus its AI translation, a 0–10 rating, per-review category scores, traveler type, the exact room stayed in, reviewer photos and videos, and each hotel's overall score, review distribution and AI summary. One API covers both Trip.com and Ctrip reviews.

Apify Actor


🎯 What this actor does

The Trip.com & Ctrip Reviews Scraper extracts live guest reviews from Trip.com and Ctrip (携程) — the two flagship hotel-booking brands of Trip.com Group, dominant across China and Asia-Pacific and used by travelers worldwide. Give it a hotel URL or ID and it returns every guest review, one clean row per review, enriched with the hotel's full rating breakdown.

Trip.com reviews are exceptionally rich, and this actor captures all of it — including the on-platform AI translation of every foreign-language review, so Chinese, Korean and Japanese guest feedback becomes readable English (or the language of your choice) automatically.

Each record can include:

  • Rating — 0–10 overall score plus the reviewer's own location / facilities / service sub-scores
  • 💬 Review text — original content and its AI translation
  • 🌏 Traveler context — traveler type (Business, Family, Couple, Solo…), reviewer region and reviewer grade
  • 🛏️ Room booked — the exact room type the guest stayed in
  • 📸 Media — reviewer photos and videos, with counts
  • 🗓️ Dates — review date and check-in date
  • 🏨 Hotel summary — overall score, category scores, review distribution (positive / negative / with media) and an AI review summary
  • 🕒 MetadatascrapedAt ISO timestamp on every row

Whether you manage a hotel, run a travel-analytics product, or research the Asian hospitality market, this actor is the fastest path from Trip.com to a usable dataset — no scraping code required.


✨ Why this actor

✅ This actor handles❌ What you'd fight doing it yourself
Both Trip.com & Ctrip from one inputTwo brands, one review pool — needs the right API
AI translations captured with originalsChinese/Korean/Japanese reviews need translating
Full pagination — every reviewPopular hotels have thousands of reviews
Per-review category scoresSub-scores are nested and easy to miss
Traveler type, room & media mappedEncoded fields that need decoding
Hotel summary + AI overview attachedLives on the page, not in the review
Clean deduplicated rowsReviews repeat across pages and need de-duping

🚀 Quick start

One-click run

  1. Open the actor on the Apify Store and click Try for free
  2. Paste one or more Trip.com/Ctrip hotel URLs into Hotel URLs — e.g. https://www.trip.com/hotels/bangkok-hotel-detail-1735479/
  3. Pick a locale, optional language / traveler-type filters, and set Max reviews per hotel (0 for everything)
  4. Hit Start — reviews stream into your dataset, ready to export as JSON, CSV, Excel, HTML or RSS

Run via API (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"startUrls": [
"https://www.trip.com/hotels/bangkok-hotel-detail-1735479/"
],
"locale": "en-US",
"maxReviewsPerHotel": 200,
"includeHotelInfo": True,
}
run = client.actor("haketa/trip-com-reviews-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rating"], item["travelType"], "|", item["translatedContent"] or item["content"])

Run via API (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/trip-com-reviews-scraper').call({
startUrls: ['https://www.trip.com/hotels/bangkok-hotel-detail-1735479/'],
locale: 'en-US',
maxReviewsPerHotel: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

⚙️ Input

FieldTypeDefaultDescription
startUrlsarrayTrip.com / Ctrip hotel page URLs. All reviews are collected for each hotel.
hotelIdsarray(Advanced) Numeric hotel IDs — the number in ...-hotel-detail-{id}/.
localeenumen-USTrip.com locale (interface language & default translation target).
reviewLanguageenumallOnly collect reviews originally written in this language. Translations are always included.
travelTypeenumallOnly collect reviews from this traveler type (Business, Couple, Family, Friends, Solo).
maxReviewsPerHotelinteger200Max reviews per hotel. 0 = all available.
includeHotelInfobooleantrueFetch the hotel name and attach overall score, category scores, distribution and AI summary.
proxyConfigurationobjectApify ProxyProxy settings — recommended for reliable results at scale.

📋 How to get a hotel URL

  1. Open trip.com (or ctrip.com) and open any hotel
  2. Copy the address-bar URL — it looks like .../hotels/bangkok-hotel-detail-1735479/
  3. Paste it into Hotel URLs. Add as many as you like.

📤 Output

One clean record per review, enriched with hotel context:

{
"reviewId": "2034833812",
"hotelId": "1735479",
"hotelName": "Ploy Hostel",
"userName": "Guest User",
"userRegion": "Hong Kong, China",
"userGrade": "Review Specialist",
"userReviewCount": "15",
"rating": "10",
"ratingLocation": "10",
"ratingFacility": "10",
"ratingService": "10",
"recommend": "true",
"content": "酒店就在市中心,步行可達各大商圈和景點...",
"translatedContent": "The hotel is right in the city center, within walking distance to major shopping areas...",
"language": "zh",
"travelType": "Solo traveler",
"roomName": "Bed in Mixed Dormitory Room (Mixed Gender)",
"createDate": "2026-07-24 18:39:53",
"checkinDate": "2026-07-01 00:00:00",
"usefulCount": "0",
"imageCount": "2",
"images": "https://ak-d.tripcdn.com/images/... | ...",
"videoCount": "0",
"hotelScore": "6.6",
"scoreLocation": "7.3",
"scoreFacility": "6.1",
"scoreService": "6.6",
"hotelTotalReviews": "1389",
"positiveReviews": "1125",
"negativeReviews": "264",
"withMediaReviews": "471",
"aiSummary": "Location: Conveniently located near city center... | Service: ...",
"hotelUrl": "https://www.trip.com/hotels/bangkok-hotel-detail-1735479/",
"scrapedAt": "2026-08-10T17:02:50.249Z"
}

💬 Review fields

FieldDescription
reviewIdUnique review identifier
userName · userRegion · userGradeReviewer nickname, region and level (e.g. Review Specialist)
userReviewCountHow many reviews the user has written
rating⭐ Overall rating out of 10
ratingLocation · ratingFacility · ratingServiceReviewer's own sub-scores
recommendWhether the guest recommends the hotel
contentOriginal review text
translatedContent🌏 AI-translated review text
languageOriginal review language
travelTypeTraveler type (Business, Family, Couple, Solo…)
roomName🛏️ Room the guest stayed in
createDate · checkinDateReview date and check-in date
usefulCountHow many users found the review useful
imageCount · images · videoCount📸 Reviewer photos ( `

🏨 Hotel fields (when includeHotelInfo is on)

FieldDescription
hotelName · hotelScoreHotel name and overall score /10
scoreLocation · scoreFacility · scoreService · scoreCleanlinessHotel category scores
hotelTotalReviewsTotal reviews for the hotel
positiveReviews · negativeReviews · withMediaReviewsReview distribution
aiSummary🤖 AI-generated review summary by aspect
hotelUrl · scrapedAtSource URL and timestamp

Export everything to JSON, CSV, Excel, HTML or RSS, or pull it through the Apify API and integrations.


💡 Use cases

Use caseHow this actor helps
🏨 Hotel reputation monitoringTrack your Trip.com/Ctrip reviews, scores and photos over time; catch recurring complaints early.
📊 Competitor benchmarkingPull reviews and category scores for rival hotels and compare location, service and value.
🌏 Asian-market insightRead Chinese, Korean and Japanese guest feedback in English via built-in AI translation.
💬 Sentiment & voice-of-customerFeed translated review text and ratings into your NLP or LLM pipeline.
📈 Travel market researchStudy traveler-type preferences, room-level feedback and seasonal trends.
🤖 ML / NLP training dataBuild large multilingual labeled review datasets (rating, type, room, media).

❓ FAQ

Does it cover both Trip.com and Ctrip? Yes. Trip.com and Ctrip share a review pool, and this actor pulls both — including reviews originally posted on Ctrip, with AI translation.

Are foreign-language reviews translated? Yes. Every review carries its original content plus a translatedContent field (AI translation into your chosen locale).

How many reviews can I get per hotel? All of them. Set maxReviewsPerHotel to 0 and the actor paginates to the last page. Popular hotels have thousands of reviews.

Do reviews include photos and videos? Yes — reviewer photo URLs are captured in images with counts in imageCount and videoCount.

Do I need a proxy? Apify Proxy is enabled by default and recommended for reliable results at scale.

Which export formats are supported? JSON, CSV, Excel, HTML and RSS, plus programmatic access via the Apify API and integrations (Google Sheets, Zapier, Make, Airbyte and more).


🔗 Integrations

Send results wherever you work: Google Sheets / Excel, Zapier · Make · n8n, Airbyte / databases / webhooks, and the Apify API for any language.


This actor collects publicly available hotel review information — the same content any visitor can read on a hotel page without logging in. It does not access private data and does not require any user account.

You are responsible for how you use the data. Please:

  • Use the output for lawful purposes such as research, analytics, reputation monitoring and benchmarking.
  • Respect the reviewed platform's Terms of Service and robots directives.
  • Comply with applicable data-protection laws (e.g. GDPR, CCPA) when handling personal data such as reviewer names — aggregate or anonymize where appropriate.
  • Do not republish scraped content in a way that infringes copyright or database rights.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Trip.com Group, Trip.com or Ctrip. All product names, logos and brands are property of their respective owners.


🛟 Support

Need another locale, an extra field, or hit a hotel that won't parse? Open an issue from the actor's Issues tab and we'll take a look.