知乎日報 API 分析

API 說明

  • 知乎日報的消息以 JSON 格式輸出css

  • 網址中api後數字表明 API 版本,太高或太低均會獲得錯誤信息java

  • 較老的接口(啓動界面圖像獲取,最新消息,過往消息)中將數字 2 替換爲 1.2 得到效果相同,替換爲 1.1 得到的是老版本 API 輸出的 JSON 格式(替換爲更低,如 1.0,或更高,如 1.3,將會得到錯誤消息)android

  • 如下全部 API 使用的 HTTP Method 均爲GETios

    API 分析

    1. 啓動界面圖像獲取

    • URL:http://news-at.zhihu.com/api/4/start-image/1080*1776
    • start-image後爲圖像分辨率,接受以下格式git

      • 320*432
      • 480*728
      • 720*1184
      • 1080*1776
      • 響應實例:github

        {
        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 最後部分的數字表明所安裝『知乎日報』的版本
          • 響應實例:api

            軟件爲最新版本時數組

            {
            "status": 0,
            "latest": "2.2.0"
            }

            軟件爲較老版本時url

            {
            "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:urlshare_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: "...

", 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 數據缺乏bodyimage-sourceimagejs屬性。多出theme_nameeditor_nametheme_id三個屬性。type0變爲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,是較老版本。

                                            推廣" class="anchor" href="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">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/theme/#{theme id}/before/#{id}
                                                      • 將專欄id填入到 #{theme id}, 將新聞id填入到#{id},如http://news-at.zhihu.com/api/4/theme/11/before/7119483
                                                      • 注:新聞id要是屬於該專欄,不然,返回結果爲空
                                                      • 響應實例:

                                                        {
                                                        "stories": [
                                                        {
                                                        "images": [
                                                        "http://pic2.zhimg.com/27f3d8f4c1e0000d04ee446a2f020cf1_t.jpg"
                                                        ],
                                                        "type": 2,
                                                        "id": 7119477,
                                                        "title": "9 張本週最熱節操圖,諾一就是人生贏家本人"
                                                        }, ...
                                                        ]
                                                        }

                                                        17. 查看editor的主頁

相關文章
相關標籤/搜索