当前位置: 首页 > news >正文

最小可运行示例:用豆瓣电影信息API查询电影详情

适用场景

在开发涉及电影内容的项目时,获取电影的详细信息(评分、导演、演员、类型等)是一个常见需求。豆瓣电影信息 API 允许开发者通过豆瓣电影 ID 或 URL 直接查询电影详情,适用于以下场景:

  • 影视资讯类应用:展示电影评分、简介、主创团队等基础信息。
  • 个人学习或原型开发:快速验证业务逻辑,无需数据库即可获取结构化数据。
  • 数据分析:采集电影元数据用于统计分析或推荐系统。
  • 自动化脚本:批量查询多部电影的信息并写入本地文件。

该接口返回 JSON 格式的数据,结构紧凑,非常适合作为 REST API 入门的练手素材。

接口能力边界

在使用之前,需要明确该接口的能力范围:

维度说明
请求方法GET
接口地址https://v1.apizero.cn/api/douban-movie
查询参数id(必填):豆瓣电影 ID(数字字符串)或豆瓣电影页面完整 URL
鉴权方式在请求头X-API-Key中传递 API Key
频率限制5 QPS(每秒最多5次请求)
返回格式JSON 对象,包含codemsgdata三层结构
覆盖内容评分、导演、演员、类型、地区、片长、集数、热门短评等(从豆瓣公开 JSON API 获取)

注意:该接口仅支持通过电影 ID 或 URL 查询,不支持按名称模糊搜索。如果需要搜索,请使用其他搜索类接口。

参数与鉴权

请求参数

接口只接受一个查询参数id,其值可以是以下两种格式之一:

  1. 纯数字 ID:例如1292052(《肖申克的救赎》的豆瓣 ID)。
  2. 完整电影 URL:例如https://movie.douban.com/subject/1292052/

两种格式效果相同,推荐使用纯数字 ID,避免 URL 解析开销。

鉴权方式

调用接口需要在 HTTP 头部添加X-API-Key字段,值为你在 API 平台申请的密钥。具体获取方式请参考文档(参见文末参考文档)。

示例 Headers:

X-API-Key: your_api_key_here

安全提示:请勿将 API Key 硬编码在公开仓库中,建议使用环境变量管理。

curl 请求示例(最小可运行)

以下是一个完整的 curl 命令,可直接复制后替换<API_KEY>与电影 ID 运行:

curl -sS \ -X GET \ -H "X-API-Key: <API_KEY>" \ "https://v1.apizero.cn/api/douban-movie?id=1292052"

参数说明

  • -sS:静默模式并显示错误信息(便于调试)。
  • -X GET:显式指定请求方法(默认 GET 可省略)。
  • -H:设置请求头。
  • id:必填,这里用1292052代表《肖申克的救赎》。

预期返回示例

{ "code": 0, "msg": "成功", "data": { "director": "弗兰克·德拉邦特", "douban_id": "1292052", "name": "肖申克的救赎", "score": "9.7", "year": "1994" } }

注意:实际返回的数据字段比示例更丰富,下面的返回值解读会列出完整字段。

代码接入示例(Python)

为了在生产环境中更方便地调用,可以使用 Python 的requests库。以下是一个最小可运行的脚本示例:

import requests import os def get_douban_movie(movie_id: str) -> dict: """ 通过豆瓣电影 ID 查询电影详情 :param movie_id: 豆瓣电影 ID(如 '1292052') :return: 解析后的 JSON 字典 """ api_key = os.getenv("DOUBAN_API_KEY") # 从环境变量获取 API Key url = "https://v1.apizero.cn/api/douban-movie" headers = {"X-API-Key": api_key} params = {"id": movie_id} response = requests.get(url, headers=headers, params=params) response.raise_for_status() # 非 2xx 状态码抛出异常 return response.json() if __name__ == "__main__": movie_id = "1292052" result = get_douban_movie(movie_id) print(result)

运行前准备

  1. 安装requests库:pip install requests
  2. 设置环境变量DOUBAN_API_KEY
    • Linux/macOS:export DOUBAN_API_KEY=your_api_key
    • Windows (CMD):set DOUBAN_API_KEY=your_api_key
    • Windows (PowerShell):$env:DOUBAN_API_KEY="your_api_key"
  3. 执行脚本:python douban_movie.py

示例输出(截取部分字段)

{ "code": 0, "msg": "成功", "data": { "director": "弗兰克·德拉邦特", "douban_id": "1292052", "name": "肖申克的救赎", "score": "9.7", "year": "1994", "actors": ["蒂姆·罗宾斯", "摩根·弗里曼", "鲍勃·冈顿"], "genres": ["剧情", "犯罪"], "region": "美国", "duration": "142分钟", "episodes": "1" } }

返回字段解读

成功的响应(code为 0)中,data字段包含电影详细信息。以下是常见字段及说明:

字段类型说明
douban_idstring豆瓣电影 ID
namestring电影名称
yearstring上映年份(如"1994"
scorestring豆瓣评分(如"9.7"
directorstring导演名称(多人用/分隔)
actorsarray of strings演员列表(前几位主演)
genresarray of strings电影类型(如["剧情", "犯罪"]
regionstring制片国家/地区
durationstring片长(如"142分钟"
episodesstring如果是剧集,显示总集数;电影一般为"1"
hot_commentsarray of objects热门短评列表(包含author,content,rating等字段)

注意hot_comments字段并非每次请求都会返回,它与豆瓣公开 JSON API 的实时性有关。如果返回中缺少该字段,无需担心。

常见错误处理

错误码一览

错误码含义可能原因解决措施
code: 400参数错误id参数缺失或格式无效检查是否传递了id,且值符合数字或 URL 格式
code: 401鉴权失败API Key 错误或未传递检查X-API-Key的值是否正确,确认密钥未过期
code: 404电影不存在提供的 ID 对应电影未收录或已下线核实电影 ID 是否正确(例如在豆瓣页面地址中提取)
code: 429请求频率超限超过 5 QPS 限制加入延迟控制,或使用队列串行请求
code: 500服务器内部错误接口临时异常等待后重试,若持续出现则反馈平台

注意:错误响应体中的msg字段会提供更详细的中文说明。例如:

{ "code": 400, "msg": "参数错误:缺少id", "data": null }

网络层面异常

  • requests.exceptions.ConnectionError:网络不通或接口域名无法解析。
  • requests.exceptions.Timeout:请求超时,建议设置合理的timeout参数(如 10 秒)。
  • requests.exceptions.HTTPError:服务端返回非 2xx 状态码,可通过response.status_code判断。

工程化注意事项

  1. API Key 安全:不要将 API Key 写在代码中或上传到公开仓库。使用环境变量、配置文件(.gitignore)或密钥管理服务。
  2. 频率控制:接口限制 5 QPS,注意不要短时间内发起大量请求。可以使用限流器(如 Python 的time.sleep(0.2)ratelimit库)。
  3. 错误重试机制:至少重试一次 500 错误和网络异常,使用指数退避策略。
  4. 数据缓存:电影元数据更新频率很低,建议缓存结果减少重复请求。可以使用 Redis 或本地文件缓存(TTL 设为 1 小时以上)。
  5. 接口版本稳定性v1路径表明当前版本;如有更新,文档会注明。建议订阅文档变化。
  6. 参数处理:如果从用户输入中获取电影 ID,务必验证格式(仅允许数字或特定域名 URL),防止注入或其他攻击。
  7. 超时设置:建议设置 10 秒连接超时和 15 秒读取超时。

参考文档

  • 豆瓣电影信息 API 文档
  • 原始 Markdown 文档

以上文档包含更详细的参数说明、错误码列表及更新日志,建议在实际集成前仔细阅读。

http://www.jsqmd.com/news/1160819/

相关文章:

  • 水泥稳定碎石生产质量有保障的厂综合实力推荐 - mypinpai
  • 直流电机POV旋转LED显示:赛博朋克风格全息效果DIY指南
  • 卡地亚表售后中心提供原厂配件维修保养服务权威公示(2026年7月最新) - 卡地亚官方售后中心
  • 众智商学院六西格玛绿带1580元怎么确认?绿带黑带费用、课程资料和咨询入口怎么核对 - 众智商学院职业教育
  • Elasticsearch系列—倒排索引原理
  • 2026精选:智能锁与机械锁行业领先品牌与实力厂家 - 企业推荐官【官方】
  • 互联网大厂Java求职面试:Spring Boot与微服务的幽默互动
  • UE4/UE5 C++项目第三方库路径配置:.Build.cs动态构建指南
  • VS Code用户紧急必读:Cursor迁移黄金48小时操作手册(含配置迁移脚本+插件兼容性速查表)
  • 2026年7月最新惠州泰格豪雅官方售后客服电话及服务网点地址查询 - 亨得利官方服务中心
  • 熬夜党面膜哪家好用:蜜妙诗亲肤卓效 - MXyuyu
  • Trae不是IDE也不是CLI:它是面向终端的轻量级Agent运行时框架
  • .NET 程序保护实战系列01-流水线架构与保护引擎总览
  • NBM7100A与PIC32MX764F128L的电池管理优化方案
  • 萧邦官方售后服务中心电话和详细地址实地考察报告多信源验证(2026年7月更新) - 萧邦中国官方服务中心
  • 复盘一次“燃爆”的销售团建:从棒球场到“金矿”,我们如何让团队战斗力翻倍? - 博传文化
  • 2026更新:长沙专业除甲醛公司推荐(本地人实测版)长沙荃妈妈环保除甲醛公司权威上榜! - 专注室内空气检测治理
  • 企业AI成本优化:微软MAI-1模型替换第三方API的技术实践
  • 【Cursor Composer生产力跃迁公式】:1个配置+2个插件+4类Prompt模板=日均节省2.8小时
  • 浙江成立十年以上航空精密件清洗用超声波清洗机源头厂家客户口碑力荐 - mypinpai
  • 宝珀中国官方售后服务中心|服务电话及详细网点地址权威信息声明(2026年7月最新) - 宝珀官方售后服务中心
  • Cursor+Python=开发效率翻倍?揭秘3个被低估的AI编程技巧,今天不学明天就落后
  • 嵌入式音频系统设计:TS2007FC与TM4C1294NCZAD黄金组合
  • 《ArgoCD 部署 Nginx 的两种方式:Git 仓库模式 VS 命令行直连模式(踩坑实录)》
  • Unity后处理特效库X-PostProcessing-Library:架构解析与性能优化实战
  • AI Agent开发实战:从工具封装到意图编排的完整指南
  • 构建AI编程工作台:从模型路由到技能集成的实践指南
  • 南京网约车公司推荐,泓锦租车值得信赖 - mypinpai
  • 生产级AI Agent框架开发的四大支柱与避坑指南
  • 江诗丹顿中国官方售后服务中心|地址与官方服务热线权威信息公告(2026年7月更新) - 江诗丹顿服务中心