Douban Movie Scraper: Reviews avatar

Douban Movie Scraper: Reviews

Pricing

from $2.15 / 1,000 subject metadata

Go to Apify Store
Douban Movie Scraper: Reviews

Douban Movie Scraper: Reviews

Collect public Douban data without a Douban login or API key. Search movie, TV, or book subjects by keyword, or add public URLs for media, people, collections, and group topics, then collect metadata, reviews, or comments. Save available ratings, authors, dates, links, and available replies.

Pricing

from $2.15 / 1,000 subject metadata

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

🎬 Douban data for media research

For media researchers and data teams, Douban Scraper collects public Douban data as structured dataset rows. Choose one keyword or add public URLs, then work with subject metadata, people profiles, long-form reviews, short comments, collections, current lists, and group topics. Available ratings, dates, authors, source links, and replies give you useful rows for Chinese media and public discussion research.

The Actor reads public pages only. It does not bypass private or login-walled content. Returned text stays in the source language.

Use it to:

📦 What this Douban scraper returns

The dataset uses one row for each successful public source item. A run can return subject, person, review, comment, or group topic rows. Fields can be absent when the public page does not provide them.

Record types

Record typeUse it forMain data
subjectMovie, TV, book, or music subjectsIdentity, ratings, engagement, credits, awards, and source links
personPublic people profilesNames, aliases, birth details, occupations, biography, followers, and known-for titles
reviewLong-form reviewsSource-language text, ratings, author context, engagement, and publication time
commentShort commentsSource-language text, ratings, author context, engagement, and publication time
groupTopicPublic group discussionsTopic text, author, times, reply totals, and available replies

When the same source item appears through another submitted value, only the first eligible occurrence is saved. When present, discoverySource shows the one keyword or URL that caused that row to be saved. Later matches do not rewrite that row.

▶️ Run a Douban collection

Quick start

  1. Choose a target such as Search media subjects, Subject metadata, Long-form reviews, or Group topics.
  2. Fill in the fields for that target. Add one keyword for subject search, or add the matching public Douban URLs.
  3. Set a positive maxItems value for a bounded run, or leave it empty to return all available results until the public source is exhausted.
  4. Run the Actor, open the dataset, and export the rows or use the dataset link in your workflow.

Only fields for the selected target are used. A failed or unavailable public target is not turned into a made-up successful row.

⚙️ Input

Choose one target. The fields below list every public input field, including the URL field inside each URL list.

Input fields

FieldTypeWhat it does
targetstringChoose one target: Search media subjects, Subject metadata, Collections and charts, Hot and ranking lists, People profiles, Long-form reviews, Short comments, or Group topics.
keywordstringFor Search media subjects, enter one keyword. Douban can return movie, TV, or book subjects. Other targets ignore this field.
mediaTypestringFor Search media subjects, choose all, movie, tv, or book. Other targets ignore this field.
collectionUrlsarray of objectsFor Collections and charts, add one or more public Douban collection or chart URLs. Other targets ignore this list.
collectionUrls[].urlstringOne public Douban collection or chart URL.
listTypestringFor Hot and ranking lists, choose movieHot, movieRanking, tvHot, or tvRanking. Other targets ignore this field.
personUrlsarray of objectsFor People profiles, add one or more public Douban person profile URLs. Other targets ignore this list.
personUrls[].urlstringOne public Douban person profile URL.
includeFullTextbooleanFor Long-form reviews, include the complete review body when this is on. Other targets ignore this setting.
groupTopicUrlsarray of objectsFor Group topics, add one or more public Douban group topic URLs. The Actor also returns available replies. Other targets ignore this list.
groupTopicUrls[].urlstringOne public Douban group topic URL.
subjectUrlsarray of objectsFor Subject metadata, Long-form reviews, or Short comments, add one or more public Douban subject URLs. The Actor returns the data for the selected target. Other targets ignore this list.
subjectUrls[].urlstringOne public Douban movie, TV, book, or music subject URL.
reviewCommentOrderstringFor Long-form reviews, only popular is supported. For Short comments, choose popular, useful, or newest. Other targets ignore this field.
onlyNewItemsbooleanOn repeat runs, return only records not seen before for the same target and submitted values. Leave this off to return all available records.
maxItemsintegerOptional work limit for results. Leave it empty to return all available results until the public source is exhausted. If set, the Actor stops after that many results. This is a work limit, not a page number.

The target is prefilled with searchSubjects. The search media type defaults to all. Full review text and new-item-only mode are off by default.

Example input

This is the public input from a successful run using the prefilled search target.

{
"target": "searchSubjects",
"keyword": "流浪地球",
"mediaType": "all",
"includeFullText": false,
"onlyNewItems": false
}

🧾 Output

The results output link opens the dataset view for successful rows from the run. The dataset can contain more than one record type when the selected target produces different public source items.

Output link

FieldTypeWhat it does
resultsstringLink to the successful Douban rows in the run dataset.

Subject rows

FieldTypeWhat it does
recordTypestringAlways subject for this shape.
subjectIdstringStable Douban ID for the subject.
subjectUrlstringCanonical public Douban URL for the subject.
subjectKindstringSubject kind: movie, tv, book, or music.
titlestringPublic title of the subject.
originalTitlestringOriginal title when Douban provides one.
aliasesarray of stringsOther titles listed by Douban.
releaseDatestringRelease date when Douban provides one.
releaseYearintegerRelease year when Douban provides one.
coverUrlstringPublic cover image URL when available.
genresarray of stringsGenres listed by Douban.
countriesarray of stringsCountries or regions listed by Douban.
runtimeMinutesintegerRunning time in minutes when available.
ratingobjectAvailable subject rating data.
rating.valuenumberAverage rating value listed by Douban.
rating.scalenumberMaximum value of the rating scale.
rating.countintegerTotal number of ratings listed by Douban.
rating.distributionobjectAvailable five-star rating distribution.
rating.distribution.oneStarnumberValue for one-star ratings.
rating.distribution.twoStarnumberValue for two-star ratings.
rating.distribution.threeStarnumberValue for three-star ratings.
rating.distribution.fourStarnumberValue for four-star ratings.
rating.distribution.fiveStarnumberValue for five-star ratings.
engagementobjectAudience totals listed by Douban.
engagement.commentCountintegerTotal comments listed by Douban.
engagement.reviewCountintegerTotal long-form reviews listed by Douban.
engagement.watchedCountintegerWatched total listed by Douban when available.
engagement.wishToWatchCountintegerWish-to-watch total listed by Douban when available.
creditsarray of objectsDirectors, writers, cast, and other crew listed by Douban.
credits[].creditTypestringCredit type: director, writer, cast, or crew.
credits[].namestringCredited person's name.
credits[].personIdstringDouban ID for the credited person when available.
credits[].personUrlstringPublic Douban profile URL for the credited person when available.
credits[].rolestringRole text listed by Douban when available.
credits[].characterstringCharacter name for a cast credit when available.
awardsarray of objectsAwards and nominations listed by Douban.
awards[].ceremonystringAward ceremony name when available.
awards[].categorystringAward category when available.
awards[].nomineestringNominee text listed by Douban when available.
awards[].statusstringwin or nomination.
awards[].yearintegerAward year when available.
imdbIdstringIMDb identifier when the public Douban record provides one.
imdbUrlstringIMDb page URL when the public Douban record provides one.
listContextobjectCollection or list that produced the subject when applicable.
listContext.namestringCollection or list name when available.
listContext.urlstringPublic collection or list URL.
listContext.rankintegerSubject rank in the collection or list when available.
listContext.listTypestringList kind: collection, chart, hot, or ranking.
discoverySourcestringThe one submitted keyword or URL that caused this subject row to be saved.

Example subject row

This is a shortened real subject row from a successful run. The source row has 58 credit objects and 28 award objects, shown here as "...".

{
"recordType": "subject",
"subjectId": "26266893",
"subjectUrl": "https://movie.douban.com/subject/26266893/",
"subjectKind": "movie",
"title": "流浪地球",
"aliases": [
"流浪地球:飞跃2020特别版",
"The Wandering Earth",
"The Wandering Earth: Beyond 2020 Special Edition"
],
"releaseDate": "2019-02-05(中国大陆)",
"releaseYear": 2019,
"coverUrl": "https://img3.doubanio.com/view/photo/m_ratio_poster/public/p2545472803.jpg",
"genres": [
"科幻",
"冒险",
"灾难"
],
"countries": [
"中国大陆"
],
"rating": {
"value": 7.9,
"scale": 10,
"count": 2055925
},
"engagement": {
"commentCount": 741729,
"reviewCount": 21654
},
"credits": "...",
"awards": "..."
}

Person rows

FieldTypeWhat it does
recordTypestringAlways person for this shape.
personIdstringStable Douban ID for the person when available.
personUrlstringCanonical public Douban profile URL.
namestringPublic name of the person.
aliasesarray of stringsOther names listed by Douban.
birthDatestringBirth date when Douban provides one.
birthPlacestringBirth place when Douban provides one.
occupationsarray of stringsOccupations listed by Douban.
biographystringPublic biography text when available.
followerCountintegerFollower total listed by Douban.
knownForTitlesarray of objectsSubjects linked to this person as known-for titles.
knownForTitles[].titlestringPublic subject title.
knownForTitles[].subjectIdstringStable subject ID when available.
knownForTitles[].subjectUrlstringPublic subject URL when available.
knownForTitles[].subjectKindstringSubject kind: movie, tv, book, or music.
knownForTitles[].yearintegerSubject year when available.
knownForTitles[].rolestringThe person's role in the subject when available.
imdbIdstringIMDb identifier when the public Douban profile provides one.
imdbUrlstringIMDb page URL when the public Douban profile provides one.

Example person row

{
"recordType": "person",
"personUrl": "https://www.douban.com/personage/27260209",
"name": "凯特·布兰切特",
"personId": "27260209",
"biography": "演员 配音 制片人 / 本杰明·巴顿奇事 指环王1:护戒使者 指环王3:王者无敌",
"followerCount": 95429,
"aliases": [
"姬蒂·白兰芝(港) / 凯特·布兰琪(台) / 大魔王(昵称)",
"Catherine Elise Blanchett (本名)"
],
"imdbId": "nm0000949",
"birthDate": "1969年5月14日",
"birthPlace": "澳大利亚,维多利亚,墨尔本"
}

Long-form review rows

FieldTypeWhat it does
recordTypestringAlways review for this shape.
reviewIdstringStable Douban ID for the review.
reviewUrlstringCanonical public Douban URL for the review.
titlestringReview title when available.
textstringReview text in the source language.
textScopestringfull for complete text or preview for a source preview.
subjectobjectThe Douban subject being reviewed.
subject.subjectIdstringSubject ID when available.
subject.urlstringCanonical public subject URL.
subject.titlestringPublic subject title.
subject.subjectKindstringSubject kind: movie, tv, book, or music.
authorobjectPublic context about the review author when available.
author.authorIdstringStable author ID when available.
author.authorUrlstringPublic author profile URL when available.
author.namestringPublic author name when available.
author.regionstringProvince or region shown by Douban when available.
ratingobjectStar rating given by the review author when available.
rating.starsintegerOne-to-five star rating.
rating.valuenumberNumeric rating value when available.
rating.scalenumberMaximum rating scale when available.
sentimentstringRating-derived label: positive, neutral, or negative.
engagementobjectEngagement totals listed by Douban for the review.
engagement.usefulCountintegerUseful vote total when available.
engagement.likeCountintegerLike total when available.
engagement.commentCountintegerComment total for the review when available.
publishedAtstringReview publication time from Douban.

Example long-form review row

This is a shortened real review row. Its source text is 14,378 characters, so the text is shown as "...".

{
"recordType": "review",
"reviewId": "9943996",
"reviewUrl": "https://movie.douban.com/review/9943996/",
"title": "【球2再次成功,笑看某些人破防】全面驳斥《流浪地球不及格》",
"text": "...",
"textScope": "full",
"subject": {
"subjectId": "26266893",
"subjectKind": "movie",
"title": "流浪地球",
"url": "https://movie.douban.com/subject/26266893/"
},
"author": {
"authorId": "12445988",
"authorUrl": "https://www.douban.com/people/12445988/",
"name": "某猪·坑坑洼洼",
"region": "深圳"
},
"rating": {
"stars": 5,
"value": 5,
"scale": 5
},
"sentiment": "positive",
"engagement": {
"usefulCount": 36088,
"likeCount": 36088,
"commentCount": 7292
},
"publishedAt": "2019-02-06 23:25:32"
}

Short comment rows

FieldTypeWhat it does
recordTypestringAlways comment for this shape.
commentIdstringStable Douban ID for the comment.
commentUrlstringCanonical public Douban URL for the comment.
textstringComment text in the source language.
subjectobjectThe Douban subject being discussed.
subject.subjectIdstringSubject ID when available.
subject.urlstringCanonical public subject URL.
subject.titlestringPublic subject title.
subject.subjectKindstringSubject kind: movie, tv, book, or music.
authorobjectPublic context about the commenter when available.
author.authorIdstringStable author ID when available.
author.authorUrlstringPublic author profile URL when available.
author.namestringPublic author name when available.
author.regionstringProvince or region shown by Douban when available.
ratingobjectStar rating given by the commenter when available.
rating.starsintegerOne-to-five star rating.
rating.valuenumberNumeric rating value when available.
rating.scalenumberMaximum rating scale when available.
sentimentstringRating-derived label: positive, neutral, or negative.
engagementobjectEngagement totals listed by Douban for the comment.
engagement.likeCountintegerLike total when available.
engagement.replyCountintegerReply total for the comment when available.
publishedAtstringComment publication time from Douban.

Example short comment row

{
"recordType": "comment",
"commentId": "1656169114",
"commentUrl": "https://www.douban.com/movie/26266893/interest/1656169114",
"text": "1.从特效和技术上讲,这应该是迄今为止此类中国电影的巅峰了。磅礴恢宏,细节营造用心。2.故事层面比较糟糕,很好奇到底出于什么原因,造成几乎超过40%的台词都是后配的,而且对不上口型,明显是片子成型后彻底改词重配的。这严重影响故事质量。3.作为类型片,很多讲述方式有明显问题,比如人物特征不鲜明,交代不清楚,刘启变成“刘户口”,这种启字的拆解为什么不交代?李一一变成“李长条”留给谁去猜?4.很多地方增加众多根本无意义的插科打诨,自以为幽默但毫无笑点非常尴尬。5.这个全球化的项目中,中俄合作,稍稍出现一句法语,两句日语,美国闪现一次国旗。6.科幻特效技术有了巨大进步,但技术这只是科幻电影的一部分。",
"subject": {
"subjectId": "26266893",
"subjectKind": "movie",
"title": "流浪地球",
"url": "https://movie.douban.com/subject/26266893/"
},
"author": {
"authorId": "1233038",
"authorUrl": "https://www.douban.com/people/1233038/",
"name": "frozenmoon",
"region": "北京"
},
"publishedAt": "2019-02-05 16:29:48",
"rating": {
"stars": 3,
"value": 3,
"scale": 5
},
"sentiment": "neutral",
"engagement": {
"likeCount": 6501
}
}

Group topic rows

FieldTypeWhat it does
recordTypestringAlways groupTopic for this shape.
topicIdstringStable Douban ID for the group topic.
topicUrlstringCanonical public Douban URL for the topic.
titlestringTopic title when available.
bodystringTopic body in the source language when available.
groupobjectDouban group that contains the topic.
group.groupIdstringStable group ID when available.
group.urlstringPublic Douban group URL.
group.namestringPublic group name when available.
authorobjectPublic context about the topic author when available.
author.authorIdstringStable author ID when available.
author.authorUrlstringPublic author profile URL when available.
author.namestringPublic author name when available.
author.regionstringProvince or region shown by Douban when available.
createdAtstringTopic creation time from Douban.
updatedAtstringLatest topic update time when available.
replyCountintegerTotal reply count listed by Douban.
repliesarray of objectsReplies collected when Douban makes them available.
replies[].replyIdstringStable reply ID when available.
replies[].replyUrlstringPublic reply URL when available.
replies[].textstringReply text in the source language.
replies[].authorobjectPublic context about the reply author.
replies[].author.authorIdstringStable reply author ID when available.
replies[].author.authorUrlstringPublic reply author URL when available.
replies[].author.namestringPublic reply author name when available.
replies[].author.regionstringProvince or region shown by Douban when available.
replies[].createdAtstringReply creation time when available.
replies[].likeCountintegerReply like total when available.

Example group topic row

This is a shortened real group topic row. Its body has 3,948 characters and it has 37 replies, shown here as "...".

{
"recordType": "groupTopic",
"topicId": "477072736",
"topicUrl": "https://www.douban.com/topic/477072736/?_spm_id=MjYzMzY3NTc1",
"title": "豆瓣电影Top250四年间排名变动",
"body": "...",
"author": {
"authorId": "263367575",
"authorUrl": "https://www.douban.com/people/LKS112/",
"name": "悟乄空",
"region": "青岛"
},
"createdAt": "2026-02-23 20:20:41",
"updatedAt": "2026-08-22 17:51:40",
"replyCount": 37,
"replies": "..."
}

Optional fields are present only when the public source provides them. Review and comment sentiment is derived from the available star rating. Text is not translated.

💳 Pricing

This Actor uses pay-per-event pricing. A matching event applies when a successful paid row is saved, and the exact tiered price is shown by Apify for your account.

Buyer-facing eventWhen it applies
Subject metadataOne public subject with core identity and available rating data is saved to your dataset.
Long-form reviewOne public long-form review is saved with available text, rating, author, engagement, and source link.
Short commentOne public short comment is saved with available text, rating, author, engagement, and source link.

No separate buyer-facing event is listed for person, collection, trending, or group-topic rows. No paid event is described here for empty or non-result work.

🔌 Integrations

Apify dataset and API

Open the dataset from the results link in the run output. You can also retrieve the saved rows through the Apify API.

Run tutorial

❓ FAQ

Which target should I use for direct media data?

Use Subject metadata with a public movie, TV, book, or music subject URL. Use Search media subjects when you want movie, TV, or book subjects from one keyword.

Can I search for music by keyword?

Music keyword discovery is not promised. Use a public music subject URL or a supported collection when you have a direct target.

What happens when a public target is unavailable?

The Actor does not invent a successful row. It reports a clear non-result and leaves unavailable source data out of the successful shapes above.

How does full review text work?

Turn on Include full review text for Long-form reviews. The review row can then include the complete body when the public source provides it. Otherwise, the text can be a source preview.

How does Return only new items work?

On repeat runs, it compares the same target and submitted values and returns only records it has not seen before. Leave it off when you want all available records for that run.

What happens if I leave Maximum items empty?

The Actor returns all available results until the public source is exhausted. Set a positive value when you want a work limit.

Is the returned text translated?

No. Text stays in the language used by the public Douban source.

Do I need a Douban login or API key?

No for public content. Private or login-walled pages are not collected or bypassed.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré