看知乎API

Via:http://www.kanzhihu.com/api-document

API文档

这里是很简陋的看知乎官方API文档0.1.5版。

当前版本不需要身份认证即可调用,但请大家注意节制,不要滥用。

本文档适合以下人群阅读:

对「看知乎」的网站感兴趣,准备开发APP或客户端的开发者;

对知乎用户数据和排行感兴趣的数据分析者;

不知道干什么就是想随便看看的闲人。

基本用法

API域名:http://api.kanzhihu.com

调用格式:目前只支持GET,URL格式为 http://api.kanzhihu.com/API名称,或者 http://api.kanzhihu.com/API名称/参数

返回数据:json

正确:{error : “”, data: … }

错误:{error : “…”}

服务器返回值之后首先检查error字段,如果不为空说明出错,为空再处理返回数据。

API列表

getposts

用途:获取「看知乎」首页文章列表,每次取10篇。

参数:时间戳(可选,留空时取最新10篇,有值时则取此时间戳之前的10篇)

返回值:

count(number),本次获取文章数量(一般为10,也可能小于10)

posts(array),文章信息列表,字段如下:

date(string),发表日期(yyyy-mm-dd)

name(string),文章名称(yesterday, recent, archive)

pic(string),抬头图url

publishtime(number),发表时间戳

count(number),文章包含答案数量

excerpt(string),摘要文字

如此时间戳之前无文章,则error==”no result”

描述:「看知乎」的答案推荐以文章为单位,每天在三个时段发布三篇,名字分别为昨日最新(yesterday)、近日热门(recent)和历史精华(archive),每篇推荐32~40个答案不等。本API就用于获取文章列表。如果要取更早的10篇(即向前翻页),则把当前最早一篇的时间戳作为参数即可。

示例:

http://api.kanzhihu.com/getposts

http://api.kanzhihu.com/getposts/1411261200

checknew

用途:检查「看知乎」首页在指定时间之后有没有更新

参数:时间戳(必选)

返回值:

result(bool),是否有更新

描述:每次调用getposts获取最新文章之后,客户端应保存本次最新一篇发表的时间戳,之后通过调用此API查询是否已经发布了新文章,如果返回结果为true则再次调用getposts。

建议在每天稍晚于5:00、11:00、17:00的时间分别进行查询,或者为了考虑日后的兼容性,每小时查询一次。

示例:

http://api.kanzhihu.com/checknew/1444899600

getpostanswers

用途:获取单篇文章的答案列表

参数:日期(必选,8位数字,如20140925)、名称(必选:yesterday、recent、archive)

返回值:

count(number),答案数量

answers(array),答案列表,字段如下:

title(string),文章id

time(datetime),发表时间

summary(string),答案摘要

questionid(string),问题id,8位数字

answerid(string),答案id,8~9位数字

authorname(string),答主名称

authorhash(string),答主hash

avatar(string),答主头像url

vote(number),赞同票数

如id不存在或没有答案,则error==”no result”

描述:通过文章列表获得某篇具体文章的日期及名称,然后通过本API获取文章中的答案列表。答案并未排序或者按照问题合并,开发者可以自行处理。

根据返回数据可以拼接以下url:

问题url:https://www.zhihu.com/question/questionid

答案url:https://www.zhihu.com/question/questionid/answer/answerid

用户主页url:https://www.zhihu.com/people/authorhash

示例:

http://api.kanzhihu.com/getpostanswers/20150925/archive

userdetail2

用途:获取用户详细页信息

参数:用户hash(必选)

返回值:

name(string):用户名

avatar(string):用户头像url

signature(string):用户签名

description(string):用户个人描述

detail(object):用户详细数据

ask(number):提问数

answer(number):回答数

post(number):专栏文章数

agree(number):赞同数

agreei(number):1日赞同数增加

agreeiratio(string):1日赞同数增幅

agreeiw(number):7日赞同数增加

agreeiratiow(string):7日赞同数增幅

ratio(number):平均赞同(总赞同数/(回答+专栏))

followee(number):关注数

follower(number):被关注数(粉丝)

followeri(number):1日被关注数增加

followiratio(string):1日被关注数增幅

followeriw(number):7日被关注数增加

followiratiow(string):7日被关注数增幅

thanks(number):感谢数

tratio(number):感谢/赞同比

fav(number):收藏数

fratio(number):收藏/赞同比

logs(number):公共编辑数

mostvote(number):最高赞同

mostvotepercent(string):最高赞同占比

mostvote5(number):前5赞同

mostvote5percent(string):前5赞同占比

mostvote10(number):前10赞同

mostvote10percent(string):前10赞同占比

count10000(number):赞同≥10000答案数

count5000(number):赞同≥5000答案数

count2000(number):赞同≥2000答案数

count1000(number):赞同≥1000答案数

count500(number):赞同≥500答案数

count200(number):赞同≥200答案数

count100(number):赞同≥100答案数

star(object):七星阵排名

answerrank:回答数+专栏文章数排名

agreerank:赞同数排名

ratiorank:平均赞同排名

followerrank:被关注数排名

favrank:收藏数排名

count1000rank:赞同超1000的回答数排名

count100rank:赞同超100的回答数排名

trend(array),近日动态,字段如下:

date(string),日期,格式为2014-09-25

answer(number):回答数+专栏文章数

agree(number):赞同数

follower(number):被关注数

topanswers(array),高票答案,字段如下:

title(string),标题

link(string):链接地址(不含域名)

agree(number):赞同数

date(string):日期,格式为2014-09-25

ispost(bool):是否专栏文章,用于判断链接域名是zhihu.com还是zhuanlan.zhihu.com

如用户hash不存在,则error==”no result”

如用户存在,但当日没有他的数据(可能是数据抓取出错),则error==”no snapshot”

描述:通过答案列表或其他途径获得知乎用户hash,然后通过本API获取用户详细信息用于展示及分析。

其中detail包含了用户在最近一条快照中的各项数据;

star选择了detail中的七项代表性数据进行排名(由于看知乎的数据库并没有包含知乎全站,所以排名越靠后越不准确),之所以叫七星阵,是因为在最初版本的设计中这七项以雷达图形式显示,外观很像星星;

trend显示了用户最多最近30天内的动态,可以看出回答、赞同、粉丝的增长情况;

topanswers是最高票的10个答案(或专栏文章)。

示例:

http://api.kanzhihu.com/userdetail2/1f644a1b7da169d2b56e1a4c6da61fea

topuser

用途:获取某项指标排名前列的用户列表(分页)

参数:指标类型、页数(可选,最小为1)、每页条数(可选,最小为1,最大为50)

返回值:

count(number),用户数量

topuser(array),用户列表,字段如下:

id(string):用户ID

name(string):用户名称

hash(string):用户hash

avatar(string):用户头像url

signature(string):用户签名

value(number):某项指标的值,注意,这里的字段名不是“value”,而是调用API时传递的参数“指标类型”;

如传递agree,则这里的字段名就是agree。

如页数为空,则默认取第一页;

如每页条数为空,则默认每页30条;

如所选范围超出了前500名,则出错并返回空值;

如所选范围刚好落在500名前后,可能返回数量会小于每页条数;

所有指标类型列表与userdetail2的返回值里detail属性内容一致。

描述:本API实际是对用户分析所做的按列筛选和分页处理,适用于移动客户端。如果为了完整分析数据,仍然推荐直接使用用户分析或通过其中的json数据文件进行。

示例:

取赞同排名前30的用户http://api.kanzhihu.com/topuser/agree/1

取关注排名161~200的用户http://api.kanzhihu.com/topuser/follower/5/40

searchuser

用途:搜索用户

参数:搜索关键字

返回值:

count(number),用户数量

users(array),用户列表,字段如下:

id(string):用户ID

name(string):用户名称

hash(string):用户hash

avatar(string):用户头像url

signature(string):用户签名

answer(number):回答+专栏数量

agree(number):赞同数量

follower(number):被关注数量

如搜索不到结果,则error=”no user”

搜索结果按如下顺序排列:

首先是用户ID等于关键字的;

然后是用户名等于关键字的,按被关注数排序;

再后面是用户名包含关键字的,按被关注数排序。

示例:

http://api.kanzhihu.com/searchuser/aton

http://api.kanzhihu.com/searchuser/苏莉安

http://api.kanzhihu.com/searchuser/苏

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容