知乎日报 API 分析

https://github.com/izzyleung/ZhihuDailyPurify/wiki/%E7%9F%A5%E4%B9%8E%E6%97%A5%E6%8A%A5-API-%E5%88%86%E6%9E%90


声明

以下所有 API 均由知乎(Zhihu.Inc)提供,本人(Xiao Liang)采取非正常手段获取。获取与共享之行为或有侵犯知乎权益的嫌疑。若被告知需停止共享与使用,本人会及时删除此页面与整个项目。

请您暸解相关情况,并遵守知乎协议。

API 说明

知乎日报的消息以 JSON 格式输出

网址中api后数字代表 API 版本,过高或过低均会得到错误信息

较老的接口(启动界面图像获取,最新消息,过往消息)中将数字 2 替换为 1.2 获得效果相同,替换为 1.1 获得的是老版本 API 输出的 JSON 格式(替换为更低,如 1.0,或更高,如 1.3,将会获得错误消息)

以下所有 API 使用的 HTTP Method 均为GET

API 分析

1. 启动界面图像获取

URL:http://news-at.zhihu.com/api/4/start-image/1080*1776

start-image后为图像分辨率,接受任意的number*number格式,number为任意非负整数,返回值均相同。

响应实例:

{

text: "© Fido Dido",

img: "http://p2.zhimg.com/10/7b/107bb4894b46d75a892da6fa80ef504a.jpg"

}

分析:

text: 供显示的图片版权信息

img: 图像的 URL

2. 软件版本查询

Android:http://news-at.zhihu.com/api/4/version/android/2.3.0

iOS:http://news-at.zhihu.com/api/4/version/ios/2.3.0

URL 最后部分的数字代表所安装『知乎日报』的版本

响应实例:

软件为最新版本时

{

"status": 0,

"latest": "2.2.0"

}

软件为较老版本时

{

"status": 1,

"msg": "【更新内容】(后略)",

"latest": "2.2.0"

}

分析:

status: 0 代表软件为最新版本,1 代表软件需要升级

latest: 软件最新版本的版本号(数字的第二段会比最新的版本号低 1)

msg: 仅出现在软件需要升级的情形下,提示用户升级软件的对话框中显示的消息

3. 最新消息

URL:http://news-at.zhihu.com/api/4/news/latest

响应实例:

{

date: "20140523",

stories: [

{

title: "中国古代家具发展到今天有两个高峰,一个两宋一个明末(多图)",

ga_prefix: "052321",

images: [

"http://p1.zhimg.com/45/b9/45b9f057fc1957ed2c946814342c0f02.jpg"

],

type: 0,

id: 3930445

},

...

],

top_stories: [

{

title: "商场和很多人家里,竹制家具越来越多(多图)",

image: "http://p2.zhimg.com/9a/15/9a1570bb9e5fa53ae9fb9269a56ee019.jpg",

ga_prefix: "052315",

type: 0,

id: 3930883

},

...

]

}

分析:

date: 日期

stories: 当日新闻

title: 新闻标题

images: 图像地址(官方 API 使用数组形式。目前暂未有使用多张图片的情形出现,曾见无images属性的情况,请在使用中注意 )

ga_prefix: 供 Google Analytics 使用

type: 作用未知

id:url与share_url中最后的数字(应为内容的 id)

multipic: 消息是否包含多张图片(仅出现在包含多图的新闻中)

top_stories: 界面顶部 ViewPager 滚动显示的显示内容(子项格式同上)(请注意区分此处的image属性与stories中的images属性)

4. 消息内容获取与离线下载

URL:http://news-at.zhihu.com/api/4/news/3892357

使用在最新消息中获得的id,拼接在http://news-at.zhihu.com/api/4/news/后,得到对应消息 JSON 格式的内容

响应实例:

{

body: "

...
",

image_source: "Yestone.com 版权图片库",

title: "深夜惊奇 · 朋友圈错觉",

image: "http://pic3.zhimg.com/2d41a1d1ebf37fb699795e78db76b5c2.jpg",

share_url: "http://daily.zhihu.com/story/4772126",

js: [ ],

recommenders": [

{ "avatar": "http://pic2.zhimg.com/fcb7039c1_m.jpg" },

{ "avatar": "http://pic1.zhimg.com/29191527c_m.jpg" },

{ "avatar": "http://pic4.zhimg.com/e6637a38d22475432c76e6c9e46336fb_m.jpg" },

{ "avatar": "http://pic1.zhimg.com/bd751e76463e94aa10c7ed2529738314_m.jpg" },

{ "avatar": "http://pic1.zhimg.com/4766e0648_m.jpg" }

],

ga_prefix: "050615",

section": {

"thumbnail": "http://pic4.zhimg.com/6a1ddebda9e8899811c4c169b92c35b3.jpg",

"id": 1,

"name": "深夜惊奇"

},

type: 0,

id: 4772126,

css: [

"http://news.at.zhihu.com/css/news_qa.auto.css?v=1edab"

]

}

分析:

body: HTML 格式的新闻

image-source: 图片的内容提供方。为了避免被起诉非法使用图片,在显示图片时最好附上其版权信息。

title: 新闻标题

image: 获得的图片同最新消息获得的图片分辨率不同。这里获得的是在文章浏览界面中使用的大图。

share_url: 供在线查看内容与分享至 SNS 用的 URL

js: 供手机端的 WebView(UIWebView) 使用

recommenders: 这篇文章的推荐者

ga_prefix: 供 Google Analytics 使用

section: 栏目的信息

thumbnail: 栏目的缩略图

id: 该栏目的id

name: 该栏目的名称

type: 新闻的类型

id: 新闻的 id

css: 供手机端的 WebView(UIWebView) 使用

可知,知乎日报的文章浏览界面利用 WebView(UIWebView) 实现

特别注意

在较为特殊的情况下,知乎日报可能将某个主题日报的站外文章推送至知乎日报首页。

响应实例:

{

"theme_name": "电影日报",

"title": "五分钟读懂明星的花样昵称:一美、法鲨……",

"share_url": "http://daily.zhihu.com/story/3942319",

"js": [],

"ga_prefix": "052921",

"editor_name": "邹波",

"theme_id": 3,

"type": 1,

"id": 3942319,

"css": [

"http://news.at.zhihu.com/css/news_qa.6.css?v=b390f"

]

}

此时返回的 JSON 数据缺少body,image-source,image,js属性。多出theme_name,editor_name,theme_id三个属性。type由0变为1。

5. 过往消息

URL:http://news.at.zhihu.com/api/4/news/before/20131119

若果需要查询 11 月 18 日的消息,before后的数字应为20131119

知乎日报的生日为 2013 年 5 月 19 日,若before后数字小于20130520,只会接收到空消息

输入的今日之后的日期仍然获得今日内容,但是格式不同于最新消息的 JSON 格式

响应实例:

{

date: "20131118",

stories: [

{

title: "深夜食堂 · 我的张曼妮",

ga_prefix: "111822",

images: [

"http://p4.zhimg.com/7b/c8/7bc8ef5947b069513c51e4b9521b5c82.jpg"

],

type: 0,

id: 1747159

},

...

]

}

格式与前同,恕不再赘述

6. 新闻额外信息

URL:http://news-at.zhihu.com/api/4/story-extra/#{id}

输入新闻的ID,获取对应新闻的额外信息,如评论数量,所获的『赞』的数量。

响应实例:

{

"long_comments": 0,

"popularity": 161,

"short_comments": 19,

"comments": 19,

}

分析:

long_comments: 长评论总数

popularity: 点赞总数

short_comments: 短评论总数

comments: 评论总数

7. 新闻对应长评论查看

URL:http://news-at.zhihu.com/api/4/story/4232852/long-comments

使用在最新消息中获得的id,在http://news-at.zhihu.com/api/4/story/#{id}/long-comments中将id替换为对应的id,得到长评论 JSON 格式的内容

响应实例:

{

"comments": [

{

"author": "EleganceWorld",

"id": 545442,

"content": "上海到济南,无尽的猪排盖饭… (后略)",

"likes": 0,

"time": 1413589303,

"avatar": "http://pic2.zhimg.com/1f76e6a25_im.jpg"

},

...

]

}

分析:

comments: 长评论列表,形式为数组(请注意,其长度可能为 0)

author: 评论作者

id: 评论者的唯一标识符

content: 评论的内容

likes: 评论所获『赞』的数量

time: 评论时间

avatar: 用户头像图片的地址

8. 新闻对应短评论查看

URL:http://news-at.zhihu.com/api/4/story/4232852/short-comments

使用在最新消息中获得的id,在http://news-at.zhihu.com/api/4/story/#{id}/short-comments中将id替换为对应的id,得到短评论 JSON 格式的内容

响应实例:

{

"comments": [

{

"author": "Xiaole说",

"id": 545721,

"content": "就吃了个花生米,呵呵",

"likes": 0,

"time": 1413600071,

"avatar": "http://pic1.zhimg.com/c41f035ab_im.jpg"

},

...

]

}

格式与前同,恕不再赘述

9. 主题日报列表查看

URL:http://news-at.zhihu.com/api/4/themes

响应实例:

{

"limit": 1000,

"subscribed": [ ],

"others": [

{

"color": 8307764,

"thumbnail": "http://pic4.zhimg.com/2c38a96e84b5cc8331a901920a87ea71.jpg",

"description": "内容由知乎用户推荐,海纳主题百万,趣味上天入地",

"id": 12,

"name": "用户推荐日报"

},

...

]

}

分析:

limit: 返回数目之限制(仅为猜测)

subscribed: 已订阅条目

others: 其他条目

color: 颜色,作用未知

thumbnail: 供显示的图片地址

description: 主题日报的介绍

id: 该主题日报的编号

name: 供显示的主题日报名称

10. 主题日报内容查看

URL:http://news-at.zhihu.com/api/4/theme/11

使用在主题日报列表查看中获得需要查看的主题日报的id,拼接在http://news-at.zhihu.com/api/4/theme/后,得到对应主题日报 JSON 格式的内容

响应实例:

{

stories: [

{

images: [

"http://pic1.zhimg.com/84dadf360399e0de406c133153fc4ab8_t.jpg"

],

type: 0,

id: 4239728,

title: "前苏联监狱纹身百科图鉴"

},

...

],

description: "为你发现最有趣的新鲜事,建议在 WiFi 下查看",

background: "http://pic1.zhimg.com/a5128188ed788005ad50840a42079c41.jpg",

color: 8307764,

name: "不许无聊",

image: "http://pic3.zhimg.com/da1fcaf6a02d1223d130d5b106e828b9.jpg",

editors: [

{

url: "http://www.zhihu.com/people/wezeit",

bio: "微在 Wezeit 主编",

id: 70,

avatar: "http://pic4.zhimg.com/068311926_m.jpg",

name: "益康糯米"

},

...

],

image_source: ""

}

分析:

stories: 该主题日报中的文章列表

images: 图像地址(其类型为数组。请留意在代码中处理无该属性与数组长度为 0 的情况)

type: 类型,作用未知

title: 消息的标题

description: 该主题日报的介绍

background: 该主题日报的背景图片(大图)

color: 颜色,作用未知

name: 该主题日报的名称

image: 背景图片的小图版本

editors: 该主题日报的编辑(『用户推荐日报』中此项的指是一个空数组,在 App 中的主编栏显示为『许多人』,点击后访问该主题日报的介绍页面,请留意)

url: 主编的知乎用户主页

bio: 主编的个人简介

id: 数据库中的唯一表示符

avatar: 主编的头像

name: 主编的姓名

image_source: 图像的版权信息

11. 热门消息

请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。

URL:http://news-at.zhihu.com/api/3/news/hot

响应实例:

{

recent: [

{

news_id: 3748552,

url: "http://daily.zhihu.com/api/2/news/3748552",

thumbnail: "http://p3.zhimg.com/67/6a/676a8337efec71a100eea6130482091b.jpg",

title: "长得漂亮能力出众性格单纯的姑娘为什么会没有男朋友?"

},

...

]

}

大体同前面介绍的 API 类似,唯一需要注意的是:欲获得图片地址,不再使用image而是thumbnail属性

url属性可直接使用。请注意,url中的api属性为2,是较老版本。

12. 软件推广

请注意!此 API 已无法访问,但是其内容曾出现于『知乎日报』 App 中。

Android:http://news-at.zhihu.com/api/3/promotion/android

iOS:http://news-at.zhihu.com/api/3/promotion/ios

13. 栏目总览

请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。

URL:http://news-at.zhihu.com/api/3/sections

响应实例:

{

data: [

{

id: 1,

thumbnail: "http://p2.zhimg.com/10/b8/10b8193dd6a3404d31b2c50e1e232c87.jpg",

name: "深夜食堂",

description: "睡前宵夜,用别人的故事下酒"

},

...

]

}

同样,注意使用thumbnail获取图像的地址

14. 栏目具体消息查看

请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。

URL:http://news-at.zhihu.com/api/3/section/1

URL 最后的数字见『栏目总览』中相应栏目的id属性

响应实例:

{

news: [

{

date: "20140522",

display_date: "5 月 22 日"

},

...

],

name: "深夜食堂",

timestamp: 1398780001

}

往前:http://news-at.zhihu.com/api/3/section/1/before/1398780001

在 URL 最后加上一个时间戳,时间戳详见 JSON 数据末端的timestamp属性

15. 查看新闻的推荐者

URL:http://news-at.zhihu.com/api/4/story/#{id}/recommenders

将新闻id填入到#{id}的位置, 如http://news-at.zhihu.com/api/4/story/7101963/recommenders

响应实例

{

"items": [],

"editors": [{

"bio": "树上的女爵",

"title": "主编",

"id": 79,

"avatar": "http:\/\/pic1.zhimg.com\/0a6456810_m.jpg",

"name": "刘柯"

}],

"item_count": 1

}

16. 获取某个专栏之前的新闻

URL:http://news-at.zhihu.com/api/4/section/#{section id}/before/#{timestamp}

将专栏id填入到 #{section id}, 将时间戳填入到#{timestamp},如http://news-at.zhihu.com/api/4/section/34/before/1465772400

注:新闻id要是属于该专栏,否则,返回结果为空

响应实例:

{

"stories": [

{

"images": [

"http://pic2.zhimg.com/27f3d8f4c1e0000d04ee446a2f020cf1_t.jpg"

],

"type": 2,

"id": 7119477,

"title": "9 张本周最热节操图,诺一就是人生赢家本人"

}, ...

]

}

17. 查看editor的主页

iOS:http://news-at.zhihu.com/api/4/editor/#{id}/profile-page/ios

Android:http://news-at.zhihu.com/api/4/editor/#{id}/profile-page/android

http://news-at.zhihu.com/api/4/editor/79/profile-page/ios

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 知乎日报 API 分析 干货集中营 API 文档 精选妹纸图 豆瓣API快速入门 易源数据
    Y小圆脸阅读 6,240评论 1 1
  • 本文发表至今已有一段时间,错别字多、文笔混乱、内容过于陈旧。本人建议读者不必细究,大概浏览即可,最新的开发指南还是...
    Oopsguy阅读 11,813评论 25 154
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 生命像随风飘散的蒲公英 一丝不苟的存活着 经历风风雨雨的洗礼 才能初露锋芒 就像该有的仪式 仅仅为了彰显生命的...
    碧色海棠阅读 166评论 0 2
  • 1. 临下班五分钟,猫小姐没忍住又抬头看了一眼坐在办公室面里的低头敲打键盘的谷润良。 似乎是猫小姐的目光过于炙热,...
    巫其格阅读 12,441评论 165 614