# Douban Movie Reviews Scraper

**Use case:** 

Collect every long-form Douban movie review with full text, star rating, useful votes, reads and author profile.

## Input

```json
{
  "startUrls": [
    "https://movie.douban.com/subject/1292052/"
  ],
  "searchCategory": "all",
  "maxResults": 100,
  "subjectContent": [
    "reviews"
  ],
  "groupSort": "all",
  "includeReplies": false,
  "maxReplies": 100
}
```

## Output

```json
{
  "type": {
    "label": "Type",
    "format": "text"
  },
  "reviewId": {
    "label": "Review ID",
    "format": "text"
  },
  "url": {
    "label": "URL",
    "format": "link"
  },
  "sharingUrl": {
    "label": "Sharing URL",
    "format": "link"
  },
  "title": {
    "label": "Title",
    "format": "text"
  },
  "content": {
    "label": "Content",
    "format": "text"
  },
  "contentMarkdown": {
    "label": "Content Markdown",
    "format": "text"
  },
  "contentHtml": {
    "label": "Content Html",
    "format": "text"
  },
  "abstract": {
    "label": "Abstract",
    "format": "text"
  },
  "rating": {
    "label": "Rating",
    "format": "number"
  },
  "ratingLabel": {
    "label": "Rating Label",
    "format": "text"
  },
  "reviewCategory": {
    "label": "Review Category",
    "format": "text"
  },
  "activity": {
    "label": "Activity",
    "format": "text"
  },
  "spoiler": {
    "label": "Spoiler",
    "format": "boolean"
  },
  "isOriginal": {
    "label": "Is Original",
    "format": "boolean"
  },
  "isRecommended": {
    "label": "Is Recommended",
    "format": "boolean"
  },
  "isBookJuryReview": {
    "label": "Is Book Jury Review",
    "format": "boolean"
  },
  "usefulCount": {
    "label": "Useful Count",
    "format": "number"
  },
  "uselessCount": {
    "label": "Useless Count",
    "format": "number"
  },
  "likesCount": {
    "label": "Likes Count",
    "format": "number"
  },
  "commentsCount": {
    "label": "Comments Count",
    "format": "number"
  },
  "resharesCount": {
    "label": "Reshares Count",
    "format": "number"
  },
  "timelineShareCount": {
    "label": "Timeline Share Count",
    "format": "number"
  },
  "collectionsCount": {
    "label": "Collections Count",
    "format": "number"
  },
  "readCount": {
    "label": "Read Count",
    "format": "number"
  },
  "giftsCount": {
    "label": "Gifts Count",
    "format": "number"
  },
  "donationsEnabled": {
    "label": "Donations Enabled",
    "format": "boolean"
  },
  "donationsCount": {
    "label": "Donations Count",
    "format": "number"
  },
  "donorsCount": {
    "label": "Donors Count",
    "format": "number"
  },
  "donationsAmountCny": {
    "label": "Donations Amount (CNY)",
    "format": "number"
  },
  "donationsNotice": {
    "label": "Donations Notice",
    "format": "text"
  },
  "recentDonors": {
    "label": "Recent Donors",
    "format": "array"
  },
  "replyPermission": {
    "label": "Reply Permission",
    "format": "text"
  },
  "replyPermissionLabel": {
    "label": "Reply Permission Label",
    "format": "text"
  },
  "ipLocation": {
    "label": "IP Location",
    "format": "text"
  },
  "updatedIpLocation": {
    "label": "Updated IP Location",
    "format": "text"
  },
  "publishedAt": {
    "label": "Published At",
    "format": "date"
  },
  "editedAt": {
    "label": "Edited At",
    "format": "date"
  },
  "coverUrl": {
    "label": "Cover URL",
    "format": "link"
  },
  "photos": {
    "label": "Photos",
    "format": "array"
  },
  "videos": {
    "label": "Videos",
    "format": "array"
  },
  "interestTags": {
    "label": "Interest Tags",
    "format": "array"
  },
  "anthologies": {
    "label": "Anthologies",
    "format": "array"
  },
  "copyright": {
    "label": "Copyright",
    "format": "text"
  },
  "censorInfo": {
    "label": "Censor Info",
    "format": "text"
  },
  "notices": {
    "label": "Notices",
    "format": "array"
  },
  "author.id": {
    "label": "Author ID",
    "format": "text"
  },
  "author.uid": {
    "label": "Author UID",
    "format": "text"
  },
  "author.name": {
    "label": "Author Name",
    "format": "text"
  },
  "author.url": {
    "label": "Author URL",
    "format": "link"
  },
  "author.avatar": {
    "label": "Author Avatar",
    "format": "image"
  },
  "author.gender": {
    "label": "Author Gender",
    "format": "text"
  },
  "author.location": {
    "label": "Author Location",
    "format": "text"
  },
  "author.registeredAt": {
    "label": "Author Registered At",
    "format": "date"
  },
  "author.followersCount": {
    "label": "Author Followers Count",
    "format": "number"
  },
  "author.isClub": {
    "label": "Author Is Club",
    "format": "boolean"
  },
  "author.isGroupManager": {
    "label": "Author Is Group Manager",
    "format": "boolean"
  },
  "author.isBanned": {
    "label": "Author Is Banned",
    "format": "boolean"
  },
  "author.isReadOnly": {
    "label": "Author Is Read Only",
    "format": "boolean"
  },
  "author.isVerified": {
    "label": "Author Is Verified",
    "format": "boolean"
  },
  "author.verifyType": {
    "label": "Author Verify Type",
    "format": "number"
  },
  "author.verifyTitle": {
    "label": "Author Verify Title",
    "format": "text"
  },
  "author.badgeIcon": {
    "label": "Author Badge Icon",
    "format": "link"
  },
  "author.medals": {
    "label": "Author Medals",
    "format": "array"
  },
  "authorReviewCount": {
    "label": "Author Review Count",
    "format": "number"
  },
  "subjectId": {
    "label": "Subject ID",
    "format": "text"
  },
  "subjectTitle": {
    "label": "Subject Title",
    "format": "text"
  },
  "subjectType": {
    "label": "Subject Type",
    "format": "text"
  },
  "subjectUrl": {
    "label": "Subject URL",
    "format": "link"
  },
  "subjectYear": {
    "label": "Subject Year",
    "format": "text"
  },
  "subjectRating": {
    "label": "Subject Rating",
    "format": "number"
  },
  "subjectRatingCount": {
    "label": "Subject Rating Count",
    "format": "number"
  },
  "subjectCardSubtitle": {
    "label": "Subject Card Subtitle",
    "format": "text"
  },
  "subjectGenres": {
    "label": "Subject Genres",
    "format": "array"
  },
  "subjectCoverUrl": {
    "label": "Subject Cover URL",
    "format": "link"
  },
  "scrapedAt": {
    "label": "Scraped At",
    "format": "date"
  },
  "replies": {
    "label": "Replies",
    "format": "array"
  }
}
```

## About this Actor

This example demonstrates how to use [Douban Scraper 豆瓣 | Movie & Book Reviews, Comments, Groups](https://apify.com/zen-studio/douban-scraper.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/zen-studio/douban-scraper.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
This Task's input is already configured above — use it as-is rather than inventing a new one.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/zen-studio/douban-scraper.md

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).
