Douban Movie Scraper — Ratings, Reviews & Hot Lists
Pricing
from $2.50 / 1,000 hot movie results
Douban Movie Scraper — Ratings, Reviews & Hot Lists
Scrape Douban (豆瓣电影) into clean datasets — movie & TV ratings, cast and crew, long-form reviews, viewer comments with province geo, IMDb cross-IDs, and the live Recent Hot Movie & Hot TV trending lists. Six operations, one actor. No account or API key needed.
Pricing
from $2.50 / 1,000 hot movie results
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Douban Movie Scraper — Ratings, Reviews & Hot Lists 🎬
🎉 The only Douban scraper that answers "what's hot right now" — pull live Hot Movie & Hot TV lists with zero seed IDs
Built for entertainment researchers, China-market analysts, and film data scientists who need ratings, reviews, and sentiment at scale
📋 Overview
Douban (豆瓣电影) is China's IMDb — the single most influential rating and review community for movies and TV in the Chinese-speaking world. This actor turns it into clean, structured datasets: ratings, cast and crew, long-form reviews, viewer comments, and the live trending lists — six operations in one tool, no account and no API key required.
Why analysts and researchers choose us:
- ✅ Trending-first: Pull the live Recent Hot Movie and Recent Hot TV lists with ratings and posters — no seed ID needed. The only Douban actor that answers "what's hot on Douban today."
- 🎯 IMDb cross-ID bridge: Every subject detail returns the IMDb ID alongside Douban ratings — join Chinese scores to Western film datasets for global reception studies.
- 💬 Sentiment + geo at scale: Full long-form review bodies plus short viewer comments with rating labels and province-level geo — ready for sentiment and regional analysis.
- 💰 Transparent pay-per-row pricing: Only charged for successful rows. Generous FREE tier to test before you scale.
- 💎 Six scrapers in one: Discovery → deep-dive in a single actor — hot lists, subject detail, reviews, comments, and full review bodies.
- ✨ No setup: No Douban account, no API key, no cookies. Pick an operation, hit run.
✨ Features
- 🔥 Recent Hot Movie — live trending movie list (20 / page), ratings + posters, no seed ID required
- 📺 Recent Hot TV — live trending TV-series list (20 / page), ratings + posters, no seed ID required
- 🎬 Subject Detail — title, year, director, writer, cast, genre, region, language, release date, duration, rating, and IMDb ID for any movie or TV
- 📝 Reviews — long-form reviews with rating label, upvotes/downvotes, reply counts, sortable by most popular or newest
- 💬 Comments — short viewer comments with rating label, vote counts, and province-level location, sortable by most useful or newest
- 🔎 Review Detail — the full body of any single review, plus forward and collect counts
- 🌐 Clean structured output — curated camelCase fields plus raw upstream data, HTTPS-normalized image URLs
- 📊 Per-operation table views — hot list, reviews, and comments each get a tailored dataset view
🎞️ Quick Start
Pick an operation, supply the ID it needs (or none, for the hot lists), and run. Each row from a hot list carries a subjectId you can drop straight into Subject Detail, Reviews, or Comments. Results land in a clean Apify dataset, exportable to JSON, CSV, or Excel.
curl -X POST https://api.apify.com/v2/acts/sian.agency~douban-movie-scraper/runs?token=YOUR_TOKEN \-H 'Content-Type: application/json' \-d '{"operation": "recentHotMovie", "maxPages": 1}'
🚀 Getting Started (3 Simple Steps)
Step 1: Pick an operation
Choose from Recent Hot Movie, Recent Hot TV, Subject Detail, Reviews, Comments, or Review Detail.
Step 2: Provide the input it needs
Hot lists need nothing. Subject Detail / Reviews / Comments need a subjectId. Review Detail needs a reviewId. Set maxPages for paginated operations.
Step 3: Run and export
Hit run and collect your structured dataset — export to JSON, CSV, or Excel.
That's it! In under a minute, you'll have:
- The live Douban trending lists with ratings and posters
- Deep subject metadata with IMDb cross-IDs
- Reviews and viewer comments ready for sentiment analysis
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | Yes | One of recentHotMovie, recentHotTv, subjectDetail, movieReviews, subjectComments, reviewDetail |
subjectId | string | For detail/reviews/comments | Numeric Douban movie or TV ID (e.g. 37067461) |
reviewId | string | For review detail | Numeric Douban review ID (e.g. 17621937) |
sort | string | No | Reviews: hotest or time. Comments: new_score or time. |
maxPages | integer | No | Pages to scrape for paginated operations (1–50, default 5) |
Example — trending movies (no ID needed):
{"operation": "recentHotMovie","maxPages": 2}
Example — reviews for a subject, most popular first:
{"operation": "movieReviews","subjectId": "37067461","sort": "hotest","maxPages": 3}
📤 Output
Results are saved to the Apify dataset with curated camelCase fields plus the raw upstream data. Filter by _operation to split modes. Key fields:
| Field | Type | Description |
|---|---|---|
subjectId | string | Douban movie/TV ID |
subjectType | string | movie or tv |
movieTitle | string | Title |
ratingValue | number | Douban rating (out of 10) |
ratingCount | integer | Number of ratings |
imdbId | string | IMDb cross-ID (subject detail) |
director / cast / genre | string | Subject metadata |
reviewId | string | Review ID |
reviewTitle / reviewDescription / reviewContent | string | Review title, snippet, full body |
reviewRatingLabel | string | Reviewer rating label (力荐 / 推荐 / …) |
upvoteCount / replyCount | integer | Review engagement |
commentContent | string | Viewer comment text |
commenterLocation | string | Commenter province |
voteCount | integer | Comment useful-votes |
subjectUrl / reviewUrl | string | Canonical Douban link |
Example — a hot-movie row:
{"_operation": "recentHotMovie","status": "success","subjectId": "37067461","subjectType": "movie","movieTitle": "女士优先 Ladies First","ratingValue": 6.4,"ratingCount": 2771,"posterUrl": "https://img3.doubanio.com/view/photo/...webp","cardSubtitle": "2026 / 美国 / 喜剧 爱情 / 西娅·夏罗克 / 萨莎·拜伦·科恩","isNew": true,"subjectUrl": "https://movie.douban.com/subject/37067461/"}
💼 Use Cases & Examples
1. Trending Movie & TV Tracking
Media monitors and content teams who need to know what's surfacing on China's biggest film community.
Input: recentHotMovie / recentHotTv, no ID needed
Output: Live trending lists with ratings, posters, and subject IDs
Use: Schedule a daily run to track rising titles and build a China trend dashboard.
2. Audience Sentiment Mining
Researchers studying how a film or series was received.
Input: movieReviews and subjectComments for a subjectId
Output: Long-form reviews + short comments with rating labels, upvotes, and province geo
Use: Feed an NLP pipeline for sentiment scoring and regional reaction analysis.
3. Cross-Market Film Intelligence
Analysts bridging Chinese and Western film datasets.
Input: subjectDetail for a subjectId
Output: Douban rating + cast/crew + IMDb ID
Use: Join Douban scores to IMDb / box-office datasets for global reception and localization studies.
4. Reception & Critical Analysis
Film scholars and journalists profiling how a title performed critically.
Input: subjectDetail + movieReviews + reviewDetail
Output: Ratings, review counts, and full review bodies
Use: Map critical vs. audience reception over a release window.
5. China Entertainment Research
Strategy and localization teams building China-market content plans.
Input: Hot lists + subject detail + comments Output: Structured ratings, trends, and viewer sentiment Use: Inform acquisition, dubbing, and release-timing decisions with real audience data.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/douban-movie-scraper').call({operation: 'recentHotMovie',maxPages: 1});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/douban-movie-scraper').call(run_input={'operation': 'subjectDetail', 'subjectId': '37067461'})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~douban-movie-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "movieReviews", "subjectId": "37067461", "sort": "hotest"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle JSON results
- Action: Save, notify, or transform
📊 Performance & Pricing
FREE Tier (Try It Now)
- Full feature access across all six operations, same data quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Scale to large trending lists, review archives, and comment datasets
- Pay-per-result: only charged for successful rows
- Premium single-row operations (subject detail, review detail) priced separately
💰 Transparent per-row pricing — bulk operations (hot lists, reviews, comments) are charged at the lowest per-row rate, so high-volume runs stay affordable.
❓ Frequently Asked Questions
Q: Do I need a Douban account or API key? A: No. Pick an operation and run — no account, no key, no cookies.
Q: How do I find a subject ID or review ID?
A: Every Hot Movie / Hot TV row includes a subjectId. Review rows include a reviewId. You can also read them from any Douban URL — movie.douban.com/subject/37067461/ or movie.douban.com/review/17621937/.
Q: Can I get both ratings and reviews in one run?
A: Each run does one operation. Chain them: run a hot list, then feed the subjectId into Subject Detail, Reviews, and Comments.
Q: Does it return the IMDb ID?
A: Yes — the Subject Detail operation includes imdbId when Douban has it, so you can join to Western datasets.
Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset.
Q: Is this legal? A: We only extract publicly available data. See the legal section below.
🐛 Troubleshooting
No rows returned
- For Reviews/Comments, confirm the
subjectIdis valid and the title actually has reviews/comments. - A subject with few reviews may exhaust before reaching your
maxPages— that's expected.
"Subject not found" / "Review not found" error row
- The ID may be invalid or the content removed. Double-check the ID from a current Douban URL.
"Data source temporarily unavailable"
- A transient upstream signal. The actor retries automatically; re-run if it persists.
Want a specific page only?
- Set
maxPagesto control how many pages of a hot list, review, or comment set you pull.
⚠️ Trademark Disclaimer
This is an independent scraping tool. It is not affiliated with, endorsed by, or sponsored by Douban (豆瓣), Beijing Douban Technology Co., Ltd., or any of their subsidiaries. The Douban® and 豆瓣电影® names appear under nominative fair use solely to describe the data source this tool works with.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools