Via:http://www.kanzhihu.com/api-document
API文檔
這里是很簡陋的看知乎官方API文檔0.1.5版。
當(dāng)前版本不需要身份認(rèn)證即可調(diào)用,但請大家注意節(jié)制,不要濫用贺喝。
本文檔適合以下人群閱讀:
對「看知乎」的網(wǎng)站感興趣哗讥,準(zhǔn)備開發(fā)APP或客戶端的開發(fā)者;
對知乎用戶數(shù)據(jù)和排行感興趣的數(shù)據(jù)分析者啡彬;
不知道干什么就是想隨便看看的閑人。
基本用法
API域名:http://api.kanzhihu.com
調(diào)用格式:目前只支持GET故硅,URL格式為 http://api.kanzhihu.com/API名稱庶灿,或者 http://api.kanzhihu.com/API名稱/參數(shù)
返回?cái)?shù)據(jù):json
正確:{error : “”, data: … }
錯(cuò)誤:{error : “…”}
服務(wù)器返回值之后首先檢查error字段,如果不為空說明出錯(cuò)吃衅,為空再處理返回?cái)?shù)據(jù)往踢。
API列表
getposts
用途:獲取「看知乎」首頁文章列表,每次取10篇徘层。
參數(shù):時(shí)間戳(可選菲语,留空時(shí)取最新10篇,有值時(shí)則取此時(shí)間戳之前的10篇)
返回值:
count(number)惑灵,本次獲取文章數(shù)量(一般為10山上,也可能小于10)
posts(array),文章信息列表英支,字段如下:
date(string)佩憾,發(fā)表日期(yyyy-mm-dd)
name(string),文章名稱(yesterday, recent, archive)
pic(string)干花,抬頭圖url
publishtime(number)妄帘,發(fā)表時(shí)間戳
count(number),文章包含答案數(shù)量
excerpt(string)池凄,摘要文字
如此時(shí)間戳之前無文章抡驼,則error==”no result”
描述:「看知乎」的答案推薦以文章為單位,每天在三個(gè)時(shí)段發(fā)布三篇肿仑,名字分別為昨日最新(yesterday)致盟、近日熱門(recent)和歷史精華(archive),每篇推薦32~40個(gè)答案不等尤慰。本API就用于獲取文章列表馏锡。如果要取更早的10篇(即向前翻頁),則把當(dāng)前最早一篇的時(shí)間戳作為參數(shù)即可伟端。
示例:
http://api.kanzhihu.com/getposts
http://api.kanzhihu.com/getposts/1411261200
checknew
用途:檢查「看知乎」首頁在指定時(shí)間之后有沒有更新
參數(shù):時(shí)間戳(必選)
返回值:
result(bool)杯道,是否有更新
描述:每次調(diào)用getposts獲取最新文章之后,客戶端應(yīng)保存本次最新一篇發(fā)表的時(shí)間戳责蝠,之后通過調(diào)用此API查詢是否已經(jīng)發(fā)布了新文章党巾,如果返回結(jié)果為true則再次調(diào)用getposts萎庭。
建議在每天稍晚于5:00、11:00齿拂、17:00的時(shí)間分別進(jìn)行查詢擎椰,或者為了考慮日后的兼容性,每小時(shí)查詢一次创肥。
示例:
http://api.kanzhihu.com/checknew/1444899600
getpostanswers
用途:獲取單篇文章的答案列表
參數(shù):日期(必選,8位數(shù)字值朋,如20140925)叹侄、名稱(必選:yesterday、recent昨登、archive)
返回值:
count(number)趾代,答案數(shù)量
answers(array),答案列表丰辣,字段如下:
title(string)撒强,文章id
time(datetime),發(fā)表時(shí)間
summary(string)笙什,答案摘要
questionid(string)飘哨,問題id,8位數(shù)字
answerid(string)琐凭,答案id芽隆,8~9位數(shù)字
authorname(string),答主名稱
authorhash(string)统屈,答主hash
avatar(string)胚吁,答主頭像url
vote(number),贊同票數(shù)
如id不存在或沒有答案愁憔,則error==”no result”
描述:通過文章列表獲得某篇具體文章的日期及名稱腕扶,然后通過本API獲取文章中的答案列表。答案并未排序或者按照問題合并吨掌,開發(fā)者可以自行處理半抱。
根據(jù)返回?cái)?shù)據(jù)可以拼接以下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
用途:獲取用戶詳細(xì)頁信息
參數(shù):用戶hash(必選)
返回值:
name(string):用戶名
avatar(string):用戶頭像url
signature(string):用戶簽名
description(string):用戶個(gè)人描述
detail(object):用戶詳細(xì)數(shù)據(jù)
ask(number):提問數(shù)
answer(number):回答數(shù)
post(number):專欄文章數(shù)
agree(number):贊同數(shù)
agreei(number):1日贊同數(shù)增加
agreeiratio(string):1日贊同數(shù)增幅
agreeiw(number):7日贊同數(shù)增加
agreeiratiow(string):7日贊同數(shù)增幅
ratio(number):平均贊同(總贊同數(shù)/(回答+專欄))
followee(number):關(guān)注數(shù)
follower(number):被關(guān)注數(shù)(粉絲)
followeri(number):1日被關(guān)注數(shù)增加
followiratio(string):1日被關(guān)注數(shù)增幅
followeriw(number):7日被關(guān)注數(shù)增加
followiratiow(string):7日被關(guān)注數(shù)增幅
thanks(number):感謝數(shù)
tratio(number):感謝/贊同比
fav(number):收藏?cái)?shù)
fratio(number):收藏/贊同比
logs(number):公共編輯數(shù)
mostvote(number):最高贊同
mostvotepercent(string):最高贊同占比
mostvote5(number):前5贊同
mostvote5percent(string):前5贊同占比
mostvote10(number):前10贊同
mostvote10percent(string):前10贊同占比
count10000(number):贊同≥10000答案數(shù)
count5000(number):贊同≥5000答案數(shù)
count2000(number):贊同≥2000答案數(shù)
count1000(number):贊同≥1000答案數(shù)
count500(number):贊同≥500答案數(shù)
count200(number):贊同≥200答案數(shù)
count100(number):贊同≥100答案數(shù)
star(object):七星陣排名
answerrank:回答數(shù)+專欄文章數(shù)排名
agreerank:贊同數(shù)排名
ratiorank:平均贊同排名
followerrank:被關(guān)注數(shù)排名
favrank:收藏?cái)?shù)排名
count1000rank:贊同超1000的回答數(shù)排名
count100rank:贊同超100的回答數(shù)排名
trend(array),近日動(dòng)態(tài)膜宋,字段如下:
date(string)代虾,日期,格式為2014-09-25
answer(number):回答數(shù)+專欄文章數(shù)
agree(number):贊同數(shù)
follower(number):被關(guān)注數(shù)
topanswers(array)激蹲,高票答案棉磨,字段如下:
title(string),標(biāo)題
link(string):鏈接地址(不含域名)
agree(number):贊同數(shù)
date(string):日期学辱,格式為2014-09-25
ispost(bool):是否專欄文章乘瓤,用于判斷鏈接域名是zhihu.com還是zhuanlan.zhihu.com
如用戶hash不存在环形,則error==”no result”
如用戶存在,但當(dāng)日沒有他的數(shù)據(jù)(可能是數(shù)據(jù)抓取出錯(cuò))衙傀,則error==”no snapshot”
描述:通過答案列表或其他途徑獲得知乎用戶hash抬吟,然后通過本API獲取用戶詳細(xì)信息用于展示及分析。
其中detail包含了用戶在最近一條快照中的各項(xiàng)數(shù)據(jù)统抬;
star選擇了detail中的七項(xiàng)代表性數(shù)據(jù)進(jìn)行排名(由于看知乎的數(shù)據(jù)庫并沒有包含知乎全站火本,所以排名越靠后越不準(zhǔn)確),之所以叫七星陣聪建,是因?yàn)樵谧畛醢姹镜脑O(shè)計(jì)中這七項(xiàng)以雷達(dá)圖形式顯示钙畔,外觀很像星星;
trend顯示了用戶最多最近30天內(nèi)的動(dòng)態(tài)金麸,可以看出回答擎析、贊同、粉絲的增長情況挥下;
topanswers是最高票的10個(gè)答案(或?qū)谖恼拢?/p>
示例:
http://api.kanzhihu.com/userdetail2/1f644a1b7da169d2b56e1a4c6da61fea
topuser
用途:獲取某項(xiàng)指標(biāo)排名前列的用戶列表(分頁)
參數(shù):指標(biāo)類型揍魂、頁數(shù)(可選,最小為1)棚瘟、每頁條數(shù)(可選现斋,最小為1,最大為50)
返回值:
count(number)偎蘸,用戶數(shù)量
topuser(array)步责,用戶列表,字段如下:
id(string):用戶ID
name(string):用戶名稱
hash(string):用戶hash
avatar(string):用戶頭像url
signature(string):用戶簽名
value(number):某項(xiàng)指標(biāo)的值禀苦,注意蔓肯,這里的字段名不是“value”,而是調(diào)用API時(shí)傳遞的參數(shù)“指標(biāo)類型”振乏;
如傳遞agree蔗包,則這里的字段名就是agree。
如頁數(shù)為空慧邮,則默認(rèn)取第一頁调限;
如每頁條數(shù)為空,則默認(rèn)每頁30條误澳;
如所選范圍超出了前500名耻矮,則出錯(cuò)并返回空值;
如所選范圍剛好落在500名前后忆谓,可能返回?cái)?shù)量會(huì)小于每頁條數(shù)裆装;
所有指標(biāo)類型列表與userdetail2的返回值里detail屬性內(nèi)容一致。
描述:本API實(shí)際是對用戶分析所做的按列篩選和分頁處理,適用于移動(dòng)客戶端哨免。如果為了完整分析數(shù)據(jù)茎活,仍然推薦直接使用用戶分析或通過其中的json數(shù)據(jù)文件進(jìn)行。
示例:
取贊同排名前30的用戶http://api.kanzhihu.com/topuser/agree/1
取關(guān)注排名161~200的用戶http://api.kanzhihu.com/topuser/follower/5/40
searchuser
用途:搜索用戶
參數(shù):搜索關(guān)鍵字
返回值:
count(number)琢唾,用戶數(shù)量
users(array)载荔,用戶列表,字段如下:
id(string):用戶ID
name(string):用戶名稱
hash(string):用戶hash
avatar(string):用戶頭像url
signature(string):用戶簽名
answer(number):回答+專欄數(shù)量
agree(number):贊同數(shù)量
follower(number):被關(guān)注數(shù)量
如搜索不到結(jié)果采桃,則error=”no user”
搜索結(jié)果按如下順序排列:
首先是用戶ID等于關(guān)鍵字的懒熙;
然后是用戶名等于關(guān)鍵字的,按被關(guān)注數(shù)排序普办;
再后面是用戶名包含關(guān)鍵字的工扎,按被關(guān)注數(shù)排序。
示例:
http://api.kanzhihu.com/searchuser/aton
http://api.kanzhihu.com/searchuser/蘇莉安
http://api.kanzhihu.com/searchuser/蘇