知乎API

声明

以下所有 API 均由 知乎(Zhihu.Inc) 提供。获取与共享之行为或有侵犯知乎权益的嫌疑,若被告知需停止共享与使用。 
请您了解相关情况,并遵守知乎协议。

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 后为图像分辨率,接受如下格式
    • 320*432
    • 480*728
    • 720*1184
    • 1080*1776
  • 响应实例:
    {
        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 滚动显示的显示内容(子项格式同上)

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

  • URL: http://news-at.zhihu.com/api/4/news/3892357
  • 使用在 最新消息 中获得的 id,拼接在 http://news-at.zhihu.com/api/4/news/ 后,得到对应消息 JSON 格式的内容
  • 响应实例:
    {
        body: "<div class="main-wrap content-wrap">...</div>",
        image_source: "Angel Abril Ruiz / CC BY",
        title: "卖衣服的新手段:把耐用品变成「不停买新的」",
        image: "http://p4.zhimg.com/30/59/30594279d368534c6c2f91b2c00c7806.jpg",
        share_url: "http://daily.zhihu.com/story/3892357",
        js: [ ],
        ga_prefix: "050615",
        type: 0,
        id: 3892357,
        css: [
            "http://news.at.zhihu.com/css/news_qa.6.css?v=b390f"
        ]
    }
    
  • 分析:
    • body : HTML 格式的新闻
    • image-source : 图片的内容提供方。为了避免被起诉非法使用图片,在显示图片时最好附上其版权信息。
    • title : 新闻标题
    • image : 获得的图片同 最新消息 获得的图片分辨率不同。这里获得的是在文章浏览界面中使用的大图。
    • share_url : 供在线查看内容与分享至 SNS 用的 URL
    • js : 供手机端的 WebView(UIWebView) 使用
    • ga_prefix : 供 Google Analytics 使用
    • 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 数据缺少 bodyiamge-sourceimagejs 属性。多出 theme_nameeditor_nametheme_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 属性
    • 未完。。。。。。

starainDou 签署

仅供学习,禁止滥用

时间: 2024-10-19 06:13:59

知乎API的相关文章

爬虫入门系列(三):用 requests 构建知乎 API

爬虫入门系列目录: 爬虫入门系列(一):快速理解HTTP协议 爬虫入门系列(二):优雅的HTTP库requests 爬虫入门系列(三):用 requests 构建知乎 API 在爬虫系列文章 优雅的HTTP库requests 中介绍了 requests 的使用方式,这一次我们用 requests 构建一个知乎 API,功能包括:私信发送.文章点赞.用户关注等,因为任何涉及用户操作的功能都需要登录后才操作,所以在阅读这篇文章前建议先了解Python模拟知乎登录.现在假设你已经知道如何用 reque

Android Json数据的解析+ListView图文混排+缓存算法Lrucache 仿知乎

前几天心血来潮,打算根据看知乎的API自己做一个小知乎,定制的过程遇到ListView的优化问题及图片未缓存重加载等等许多问题,解决了以后打算和博友分享一下. 接口数据:http://api.kanzhihu.com/getpostanswers/20150925/archive 首先,Json数据太常用,相信每一位开发者Json的解析都是必备的.我们要准备以下知识: JavaBean,枚举你需要的元素,用来存储数据. 异步加载网络内容的必备途径,多线程加载+AsyncTask两种方式. Jso

js 常见弹出框学习

模拟系统的弹出框 系统自带的弹出框 总结 链接  http://blog.csdn.net/anhuidelinger/article/details/17024491 参考这个网站学习模态框的动态弹出   http://tympanus.net/codrops/2013/06/25/nifty-modal-window-effects/,网站提供打包好的资源下载. html中的基本结构: <div class="md-modal md-effect-1" id="mo

FAQs: 我们可以在那里来为我的没有提升管理权限的应用程序存储用户数据?

如果你正在写一个不需要管理员权限的应用程序,如写一个业务线应用(Line of Business,LOB),用户应用程序如游戏,你总是要把应用程序的数据写到一个标准用可以访问的目录.下面列出一些所推荐的需求: l  将每个用户的数据写入: Ø  选择1:FOLDERID_RoamingAppData / System.Environment.SpecialFolder.ApplicationData 用户不会在资源管理器中访问这个目录,关于用户的漫游数据都应该存储在这里.默认的位置在%appda

类型转换

http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/18_Type_Casting.html 本页包含内容: 定义一个类层次作为例子 检查类型 向下转型(Downcasting) Any和AnyObject的类型转换 类型转换可以判断实例的类型,也可以将实例看做是其父类或者子类的实例. 类型转换在 Swift 中使用is 和 as操作符实现.这两个操作符提供了一种简单达意的方式去检查值的类型或

Html5的DeviceOrientation特性

设备定位API 引用W3C中的设备定位API的规范描述可知,该API“……定义了多种新型DOM事件,旨在提供与主机设备相关的物理朝向与运动状态信息.”由API提供的数据产生自多种来源,其中包括设备上的陀螺仪.加速计以及指南针等.不同的设备所配备的数据来源也有所区别,具体情况取决于其上搭载的传感器类型. 该API从属于W3C Working Draft,也就是说相关规范并非最终确定.在未来其具体内容可能还会出现一定程度的变动.另外值得注意的是,已知该API在多种浏览器以及操作系统之上可能出现不一致

java设计模式之组合

听说你们公司最近新推出了一款电子书阅读应用,市场反应很不错,应用里还有图书商城,用户可以在其中随意选购自己喜欢的书籍.你们公司也是对此项目高度重视,加大了投入力度,决定给此应用再增加点功能. 好吧,你也知道你是逃不过此劫了,没过多久你的leader就找到了你.他告诉你目前的应用对每本书的浏览量和销售量做了统计,但现在想增加对每个书籍分类的浏览量和销售量以及所有书籍总的浏览量和销售量做统计的功能,希望你可以来完成这项功能. 领导安排的工作当然是推脱不掉的,你只能硬着头皮上了,不过好在这个功能看起来

IOS开发语言Swift入门连载---类型转换

IOS开发语言Swift入门连载-类型转换 类型转换可以判断实例的类型,也可以将实例看做是其父类或者子类的实例. 类型转换在 Swift 中使用is 和 as 操作符实现.这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型. 你也可以用来检查一个类是否实现了某个协议,就像在 Checking for Protocol Conformance部分讲述的一样. 定义一个类层次作为例子 你可以将它用在类和子类的层次结构上,检查特定类实例的类型并且转换这个类实例的类型成为这个层次结构中的

classList详解,让你的js方便地操作DOM类

在此之前,jQuery的hasClass.addClass.removeClass我们已经再熟悉不过了,然而我们并不会在每一个项目中都会去使用 jQuery或者Zepto,譬如在移动端的网页中,考虑到传说中的性能和静态资源的请求量等因素,我们通常会选择采用原生js,而对于元素的class 操作.你首先想到的就是className,这位伙计完美地得到了包括ie6在内的所有古现代浏览器的支持,尽管它的功能简直弱爆,但是人们在相当长的一 段时间还是用得不亦乐乎,甚至一些基础库也只是通过classNam