{"id":17176180,"url":"https://github.com/wanglin2/douban_api","last_synced_at":"2025-04-13T16:12:27.435Z","repository":{"id":112672562,"uuid":"180373120","full_name":"wanglin2/douban_api","owner":"wanglin2","description":"豆瓣API服务","archived":false,"fork":false,"pushed_at":"2022-06-19T07:17:29.000Z","size":32,"stargazers_count":150,"open_issues_count":1,"forks_count":25,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T16:12:22.549Z","etag":null,"topics":["api","douban"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wanglin2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-09T13:28:02.000Z","updated_at":"2025-04-06T17:44:24.000Z","dependencies_parsed_at":"2023-06-10T19:45:29.178Z","dependency_job_id":null,"html_url":"https://github.com/wanglin2/douban_api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanglin2%2Fdouban_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanglin2%2Fdouban_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanglin2%2Fdouban_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanglin2%2Fdouban_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wanglin2","download_url":"https://codeload.github.com/wanglin2/douban_api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741195,"owners_count":21154255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","douban"],"created_at":"2024-10-14T23:59:26.780Z","updated_at":"2025-04-13T16:12:27.429Z","avatar_url":"https://github.com/wanglin2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 豆瓣API服务\n通过phantom无头浏览器爬取豆瓣页面，分析页面结构来解析并输出json类型数据\n\n## 缘起\n豆瓣之前有提供官方开放API，虽然每天调用接口有上限，但是至少可以使用，后来不知为何突然关闭了且不允许个人申请。但是笔者有部分个人项目使用相关的接口，所以突然关闭给笔者带来了不小的困扰，难道又要回到以前刀耕火种的年代吗？显然不能接受，在Google and 百度无果后决定自己写个相关的爬虫服务\n\n## 安装\u0026启动\n- node \u003e= 8.9.2\n- 安装phantom无头浏览器，[安装文档](http://phantomjs.org/download.html)\n- git clone git@github.com:wanglin2/douban_api.git\n- cd douban_api\n- npm i\n- npm start\n\n## 代码目录结构\n- `config`: 项目的配置信息\n- `middlewares`: 中间件函数\n- `controllers`: 路由转发\n- `models`: 接口逻辑\n- `routes`: 路由\n- `utils`: 公共工具函数\n- `app.js`: 入口文件\n\n## 路由区分\n- /book 书籍部分接口\n- /movie 影视部分接口\n- /music 音乐部分接口\n\n## 接口详解\n### 书籍\n#### 根据关键词搜索书籍列表\n- 描述：只有概要信息。豆瓣分页比较迷，如果页数较大的情况下是不会透出所有页数的，所以该接口统一不透出总页数数据，所以当请求某一页没有数据时那之前的一页应该就是最后一页。平均请求耗时：5s\n- 接口：/book/list?key=\u0026page=\n- ---key：搜索关键词\n- ---page：当前请求页数\n- 响应实例：\n```json\n{\n    \"status\": true,\n    \"msg\": \"获取成功\",\n    \"time\": \"5.364s\",\n    \"data\": [\n        {\n            \"cover_link\": \"https://book.douban.com/subject/4913064/\",\n            \"cover\": \"https://img3.doubanio.com/view/subject/l/public/s29053580.jpg\",\n            \"rating\": \"9.3\",\n            \"title\": \"活着\",\n            \"author\": \"余华\",\n            \"press\": \"作家出版社\",\n            \"date\": \"2012-8-1\",\n            \"price\": \"20.00元\"\n        }, \n        {\n            \"cover_link\": \"https://book.douban.com/subject/1029791/\",\n            \"cover\": \"https://img3.doubanio.com/view/subject/l/public/s1074291.jpg\",\n            \"rating\": \"8.7\",\n            \"title\": \"许三观卖血记\",\n            \"author\": \"余华\",\n            \"press\": \"南海出版公司\",\n            \"date\": \"1998-9\",\n            \"price\": \"16.80元\"\n        }\n    ]\n}\n```\n\n#### 获取某本书籍的详细信息\n- 描述：获取某本书籍的详细信息，url来自list或list_pro接口。平均请求耗时：6s\n- 接口：/book/detail?url= \n- ---url：豆瓣详情页URL\n- 响应实例：\n```json\n{\n    \"status\": true,\n    \"msg\": \"获取成功\",\n    \"time\": \"6.663s\",\n    \"data\": {\n        \"title\": \"活着\",\n        \"pic\": \"https://img3.doubanio.com/view/subject/l/public/s29053580.jpg\",\n        \"作者\": \"余华\",\n        \"出版社\": \"作家出版社\",\n        \"出版年\": \"2012-8-1\",\n        \"页数\": \"191\",\n        \"定价\": \"20.00元\",\n        \"装帧\": \"平装\",\n        \"丛书\": \"余华作品（2012版）\",\n        \"ISBN\": \"9787506365437\",\n        \"rating\": \"9.3\",\n        \"content_intro\": \"《活着(新版)》讲述了农村人福贵悲惨的人生遭遇。福贵本是个阔少爷，可他嗜赌如命，终于赌光了家业，一贫如洗。他的父亲被他活活气死，母亲则在穷困中患了重病，福贵前去求药，却在途中被国民党抓去当壮丁。经过几番波折回到家里，才知道母亲早已去世，妻子家珍含辛茹苦地养大两个儿女。此后更加悲惨的命运一次又一次降临到福贵身上，他的妻子、儿女和孙子相继死去，最后只剩福贵和一头老牛相依为命，但老人依旧活着，仿佛比往日更加洒脱与坚强。《活着(新版)》荣获意大利格林扎纳•卡佛文学奖最高奖项（1998年）、台湾《中国时报》10本好书奖（1994年）、香港“博益”15本好书奖（1994年）、第三届世界华文“冰心文学奖”（2002年），入选香港《亚洲周刊》评选的“20世纪中文小说百年百强”、中国百位批评家和文学编辑评选的“20世纪90年代最有影响的10部作品”。\",\n        \"author_intro\": \"余华，1960年出生，1983年开始写作。至今已经出版长篇小说4部，中短篇小说集6部，随笔集4部。主要作品有《兄弟》《活着》《许三观卖血记》《在细雨中呼喊》等。其作品已被翻译成20多种语言在美国、英国、法国、德国、意大利、西班牙、荷兰、瑞典、挪威、希腊、俄罗斯、保加利亚、匈牙利、捷克、塞尔维亚、斯洛伐克、波兰、巴西、以色列、日本、韩国、越南、泰国和印度等国出版。曾获意大利格林扎纳·卡佛文学奖（1998年）、法国文学和艺术骑士勋章（2004年）、中华图书特殊贡献奖（2005年）、法国国际信使外国小说奖（2008年）等。\",\n        \"dirs\": [\"中文版自序\", \"韩文版自序\", \"日文版自序\", \"英文版自序\", \"麦田新版自序\", \"活着\", \"外文版评论摘要\"],\n        \"tags\": [\"余华\", \"活着\", \"人生\", \"人性\", \"中国文学\", \"小说\", \"社会\", \"当代文学\"]\n    }\n}\n```\n\n### 影视\n#### 根据关键词搜索影视列表\n- 描述：描述同书籍对应接口。平均请求耗时：5s\n- 接口：/movie/list?key=\u0026page=\n- ---key：搜索关键词\n- ---page：当前请求页数\n- 响应实例：\n```json\n{\n    \"status\": true,\n    \"msg\": \"获取成功\",\n    \"time\": \"5.372s\",\n    \"data\": [\n        {\n            \"cover_link\": \"https://movie.douban.com/subject/4864908/\",\n            \"cover\": \"https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2530513100.jpg\",\n            \"rating\": \"7.2\",\n            \"title\": \"影‎ \",\n            \"country\": \"中国大陆\",\n            \"type\": [\"香港\", \"剧情\", \"动作\", \"武侠\", \"古装\", \"三国·荆州\", \"荆州保卫战\"],\n            \"duration\": \"116分钟\",\n            \"year\": \"2018\",\n            \"actors\": [\"张艺谋\", \"邓超\", \"孙俪\", \"郑恺\", \"王千源\", \"王景春\", \"胡军\", \"关晓彤\", \"吴磊\"]\n        }, \n        {\n            \"cover_link\": \"https://movie.douban.com/subject/24719063/\",\n            \"cover\": \"https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2262236348.jpg\",\n            \"rating\": \"8.0\",\n            \"title\": \"烈日灼心‎ \",\n            \"country\": \"中国大陆\",\n            \"type\": [\"剧情\", \"犯罪\", \"悬疑\", \"不法之徒\", \"法外之徒\"],\n            \"duration\": \"139分钟\",\n            \"year\": \"2015\",\n            \"actors\": [\"曹保平\", \"邓超\", \"段奕宏\", \"郭涛\", \"王珞丹\", \"吕颂贤\", \"高虎\", \"白柳汐\", \"杜志国\"]\n        }\n    ]\n}\n```\n\n#### 获取影视的详细信息\n- 描述：描述同书籍对应接口。平均请求耗时：6s\n- 接口：/movie/detail?url=\n- ---url：豆瓣详情页URL\n- 响应实例：\n```json\n{\n    \"status\": true,\n    \"msg\": \"获取成功\",\n    \"time\": \"9.082s\",\n    \"data\": {\n        \"title\": \"影(2018)\",\n        \"pic\": \"https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2530513100.jpg\",\n        \"导演\": \"张艺谋\",\n        \"编剧\": \"李威/张艺谋\",\n        \"主演\": \"邓超/孙俪/郑恺/王千源/王景春/胡军/关晓彤/吴磊/封柏更多...\",\n        \"类型\": \"剧情/动作/武侠/古装\",\n        \"制片国家/地区\": \"中国大陆/香港\",\n        \"语言\": \"汉语普通话\",\n        \"上映日期\": \"2018-09-30(中国大陆)/2018-09-06(威尼斯电影节)\",\n        \"片长\": \"116分钟\",\n        \"又名\": \"三国·荆州/荆州保卫战/Shadow\",\n        \"IMDb链接\": \"tt6864046\",\n        \"rating\": \"7.2\",\n        \"content_intro\": \"战乱年代，群雄并起。割据一方的沛国安于现状，一任国主沛良（郑恺饰）慨歌太平。要冲之地境州早年为强邻炎国借去，而今据而不还。沛国都督子虞（邓超饰）前往讨伐，却中了对方大将杨苍（胡军饰）的拖刀，重伤不愈。心有不甘的子虞暗中派出替身境州（邓超饰）假扮自己，总理军政，内则使令夫人小艾（孙俪饰）襄助。真假子虞切磋战法，寻求破解杨苍刀法的绝技。而另一方面，沛良恼怒子虞私自约战杨苍，不惜将妹妹青萍（关晓彤饰）嫁于杨苍之子为妾媾和。淫雨霏霏，连日不开。境州上空，杀戮与机谋纠缠撕裂……本片根据朱苏进的剧本《三国•荆州》改编。©豆瓣\",\n        \"acting_staff\": [\"张艺谋\", \"邓超\", \"孙俪\", \"郑恺\", \"王千源\", \"王景春\"],\n        \"imgs\": [\"https://img3.doubanio.com/view/photo/sqxs/public/p2515009651.jpg\", \"https://img3.doubanio.com/view/photo/sqxs/public/p2464122341.jpg\"]\n    }\n}\n```\n\n### 音乐\n#### 根据关键词搜索音乐列表\n- 描述：描述同书籍对应接口。平均请求耗时：5s\n- 接口：/music/list?key=\u0026page=\n- ---key：搜索关键词\n- ---page：当前请求页数\n- 响应实例：\n```json\n{\n    \"status\": true,\n    \"msg\": \"获取成功\",\n    \"time\": \"6.561s\",\n    \"data\": [\n        {\n            \"cover_link\": \"https://music.douban.com/subject/1403307/\",\n            \"cover\": \"https://img3.doubanio.com/view/subject/m/public/s3750422.jpg\",\n            \"rating\": \"9.2\",\n            \"title\": \"范特西 Fantasy\",\n            \"artist\": \"周杰伦\",\n            \"date\": \"2001-09-14\",\n            \"album\": \"专辑\",\n            \"medium\": \"CD\",\n            \"schools\": \"流行\"\n        }, \n        {\n            \"cover_link\": \"https://music.douban.com/subject/1401853/\",\n            \"cover\": \"https://img3.doubanio.com/view/subject/m/public/s3737076.jpg\",\n            \"rating\": \"8.1\",\n            \"title\": \"七里香 Common Jasmin Orange\",\n            \"artist\": \"周杰伦\",\n            \"date\": \"2004\",\n            \"album\": \"专辑\",\n            \"medium\": \"CD\",\n            \"schools\": \"流行\"\n        }\n    ]\n}\n```\n\n#### 获取音乐的详细信息\n- 描述：描述同书籍对应接口。平均请求耗时：6s\n- 接口：/music/detail?url=\n- ---url：豆瓣详情页URL\n- 响应实例：\n```json\n{\n    \"status\": true,\n    \"msg\": \"获取成功\",\n    \"time\": \"9.652s\",\n    \"data\": {\n        \"title\": \"七里香\",\n        \"pic\": \"https://img3.doubanio.com/view/subject/m/public/s3737076.jpg\",\n        \"又名\": \"CommoJasmiOrage\",\n        \"表演者\": \"周杰伦\",\n        \"流派\": \"流行\",\n        \"专辑类型\": \"专辑\",\n        \"介质\": \"CD\",\n        \"发行时间\": \"2004\",\n        \"出版者\": \"上海声像出版社\",\n        \"唱片数\": \"1\",\n        \"条形码\": \"9787799415932\",\n        \"ISRC(中国)\": \"\",\n        \"其他版本\": \"周杰伦：七里香（精装版，附赠2首最新MV）（全部）\",\n        \"rating\": \"8.1\",\n        \"content_intro\": \"從第一張JAY同名專輯、第二張《范特西》、第三張《八度空間》到第四張《葉惠美》專輯，周杰倫每一次的專輯名稱都給了歌迷許多想像空間，也給了大家許多驚嘆號，這一次第五張專輯周杰倫首次以主打歌名「七里香」做為專輯名稱，周杰倫表示因為對這一次專輯的音樂充滿自信，希望大家能把注意力焦點放在音樂上，將話題回歸到音樂上。　　新歌「七里香」是帶著東方氣息的抒情搖滾曲風，周杰倫的最佳搭檔方文山在「七里香」歌曲裡首度以「作詩」的方式填詞，創作出一首詩意濃厚的現代詩情歌。而此曲之MV特別遠赴日本的群馬縣高崎市拍攝。\",\n        \"songs\": [\"1.我的地盘\", \"2.七里香\", \"3.借口\", \"4.外婆\", \"5.将军\", \"6.搁浅\", \"7.乱舞春秋\", \"8.困兽之斗\", \"9.园游会\", \"10.止战之殇\"]\n    }\n}\n```\n\n## 其他\n### 跨域配置\n- 修改/config/config.js文件中的`corsWhiteList`字段，在数组中增加需要跨域的域名，如：http://lxqnsys.com\n\n### 特别注意\n- 因为是通过爬取页面来抓取数据，所以会有以下问题：\n- --数据较慢，且有一定失败概率\n- --因为是通过分析页面结构来输出数据，页面结构很容易变动，所以相当不稳定，所以使用场景慎重考虑\n\n## 开源许可\n- MIT License\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanglin2%2Fdouban_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwanglin2%2Fdouban_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanglin2%2Fdouban_api/lists"}