Contact Us
Back top
Current Location : APIs > 知乎
知乎 Transactions( 61 )

知乎

129

Intro. :

Tag : - -

On Shelves Time : 2016-09-28

Type :

Total invocations(updated per hour)

知乎文章 ¥ 1.00 yuan/100calls 辅助工具 每天免费测试 30

接口服务

接口延迟等级: - 平台反爬等级: -
平台升级频率: -

数据指标

最大数据量: 无限制 最大页数: 无限制
每页数据量: 10 数据实时性: 实时
数据回溯性: 全部 数据排序项: 平台默认
缺失的数据字段: 暂无 备注:

API Mark

Example

注: 该接口为实时数据接口,可能受目标平台或网络状态影响,会存在一定的错误率,建议在程序中加入出错重试机制。
Error Code
-- 请求示例 url 默认请求参数已经做URL编码 curl -i "http://api01.idataapi.cn:8000/post/zhihu?apikey={Your apikey}&kw=google"
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.nio.charset.Charset; import org.json.JSONException; import org.json.JSONObject; import java.io.PrintWriter; import java.net.URLConnection; public class Example { private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return sb.toString(); } public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException { URL realUrl = new URL(url); URLConnection conn = realUrl.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); PrintWriter out = new PrintWriter(conn.getOutputStream()); out.print(body); out.flush(); InputStream instream = conn.getInputStream(); try { BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8"))); String jsonText = readAll(rd); JSONObject json = new JSONObject(jsonText); return json; } finally { instream.close(); } } public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException { URL realUrl = new URL(url); URLConnection conn = realUrl.openConnection(); InputStream instream = conn.getInputStream(); try { BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8"))); String jsonText = readAll(rd); JSONObject json = new JSONObject(jsonText); return json; } finally { instream.close(); } } public static void main(String[] args) throws IOException, JSONException { // 请求示例 url 默认请求参数已经做URL编码 String url = "http://api01.idataapi.cn:8000/post/zhihu?apikey={Your apikey}&kw=google"; JSONObject json = getRequestFromUrl(url);; System.out.println(json.toString()); } }
//using System.Net.Security; //using System.Security.Cryptography.X509Certificates; private const String method = "GET"; static void Main(string[] args) { String bodys = ""; // 请求示例 url 默认请求参数已经做URL编码 String url = "http://api01.idataapi.cn:8000/post/zhihu?apikey={Your apikey}&kw=google"; HttpWebRequest httpRequest = null; HttpWebResponse httpResponse = null; if (url.Contains("https://")) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url)); } else { httpRequest = (HttpWebRequest)WebRequest.Create(url); } httpRequest.Method = method; if (0 < bodys.Length) { byte[] data = Encoding.UTF8.GetBytes(bodys); using (Stream stream = httpRequest.GetRequestStream()) { stream.Write(data, 0, data.Length); } } try { httpResponse = (HttpWebResponse)httpRequest.GetResponse(); } catch (WebException ex) { httpResponse = (HttpWebResponse)ex.Response; } Console.WriteLine(httpResponse.StatusCode); Console.WriteLine(httpResponse.Method); Console.WriteLine(httpResponse.Headers); Stream st = httpResponse.GetResponseStream(); StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8")); Console.WriteLine(reader.ReadToEnd()); Console.WriteLine("\n"); } public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; }
<?php $method = "GET"; // 请求示例 url 默认请求参数已经做URL编码 $url = "http://api01.idataapi.cn:8000/post/zhihu?apikey={Your apikey}&kw=google"; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_ENCODING, "gzip"); var_dump(curl_exec($curl)); ?>
# coding:utf-8 """ Compatible for python2.x and python3.x requirement: pip install requests """ from __future__ import print_function import requests # 请求示例 url 默认请求参数已经做URL编码 url = "http://api01.idataapi.cn:8000/post/zhihu?apikey={Your apikey}&kw=google" headers = { "Accept-Encoding": "gzip", "Connection": "close" } if __name__ == "__main__": r = requests.get(url, headers=headers) json_obj = r.json() print(json_obj)

Request Field( Params marked* means users should choose one from the each marked items to fill in.)

Property Name Type Mandatory Example Description
kw string * 查询关键词
qid string * 47188965
topicId string * 19616650
uid string * 7730896cbeca6656ab3ab422d01a555c
pageToken string 翻页值,从API返回结果可以拿到

Response Fields

Property Name Type Example Description
  • hasNext boolean true 是否有下一页
  • retcode string 000000 返回状态码
  • appCode string zhihu 本次查询的api名
  • dataType string post 本次查询的api类型
  • pageToken string 20 翻页值
  • data array [...] 数据内容列表
  • posterId string af690f4a8711ab36021b1ddab8c4ea17 发布者ID
  • commentCount number 164 评论数
  • posterScreenName string Aceyclee 发布者名称
  • title string 谷歌有个不为人知的面试渠道 文章标题
  • url string https://zhuanlan.zhihu.com/p/24935879 文章链接
  • publishDateStr string 2017-01-18T12:47:25 发布时间:字符串格式
  • publishDate number 1484743645 发布时间:时间戳格式
  • likeCount number 5355 点赞数
  • content string 导读:如果谷歌发现你在搜索某个特定的编程术语,他们会邀请你申请这个职位,看起来很 文章内容
  • shareCount string null 转发数
  • keyValues object {...} 键值对
  • qid string null 问题ID(专栏等非问答的无此ID)
  • type string article 文章类型(回答、专栏等)
  • imageUrls array [...] 图片链接
  • id string 24935879 文章ID
  • updateDate number 1484743644 回答最后更新时间
  • thankCount number 227 感谢数

Returns The Sample

{
    "hasNext": true,
    "retcode": "000000",
    "appCode": "zhihu",
    "dataType": "post",
    "pageToken": "20",
    "data": [
        {
            "posterId": "af690f4a8711ab36021b1ddab8c4ea17",
            "commentCount": 164,
            "posterScreenName": "Aceyclee",
            "title": "谷歌有个不为人知的面试渠道",
            "url": "https:\/\/zhuanlan.zhihu.com\/p\/24935879",
            "publishDateStr": "2017-01-18T12:47:25",
            "publishDate": 1484743645,
            "likeCount": 5355,
            "content": "导读:如果谷歌发现你在搜索某个特定的编程术语,他们会邀请你申请这个职位,看起来很疯狂是吧,可谷歌确实如此。 原文:Google Has a Secret Interview Process... And It Landed Me a Job\n三个月前,我觉得我还没准备好申请谷歌的工作,然而谷歌并不这么看。\n我当时正处于职业过渡期,之前三年我一直是管理顾问,然后又在一家初创公司工作过,但我想成为一名计算机工程师。我通过 Georgia Tech 的在线课程获得了计算机科学的硕士学位,我知道我正慢慢地学到我应聘岗位所需的技能,但我仍缺乏申请全职软件工程师的信心。\n有天早上我在工作,我用谷歌搜索“Python lambda 函数列表解析”,一如既往是熟悉的蓝色链接,我开始找寻最相关的一个。\n然后,一些不同寻常的事情就发生了!\n搜索结果的页面分成两半并向后折叠,一个方框显示出来,写着“你正在使用我们的编程语言,尝试一下挑战?”\n我盯着屏幕好一会儿,什么?!于是我按下了回车,准备迎接这个挑战。\n我点击进去后跳转到这个网页——“foo.bar”,该页面类似于使用 UNIX 接口,所以我键入命令来查看文件列表。列表里只有一个名为“start_here.txt”的文档。打开后有能看到这么两句话:\n“键入请求以接受挑战。键入帮助以获取命令列表。”\n我键入“请求”,预计会看到“跟着小白兔”之类的提示。然而,屏幕直接显示一段文本概述了编程挑战的内容,并给出了如何提交解决方案的指示。我有 48 小时解决它,计时器已经开始计时了。\n挑战题就不贴上来了,但解决它确实需要一点算法知识。我可以选择用 Python 或者 Java,我在前几个小时里配置工作环境并解决了第一道挑战题。每当我提交解决方案后,foo.bar 便会用五个隐藏的用例测试代码。\n一旦我的解决方案通过了所有测试,我就可以提交它并申请下一个挑战题。在接下来的两个星期,我还解决了五个问题。\n当我解决了第六个问题后,foo.bar 让我提交我的联系信息。我输入了我的电话号码和电子邮件,希望这是事情的结束。\n让我惊喜的是,几天后一个招聘人员给我发电子邮件索要我的简历副本,于是我回复了电子邮件,并且打了电话。\n网上有谷歌招聘流程的详细记录,从这一点来看,我的经历十分典型。唯一的区别是,我不需要再经过电话的技术面试,因为我在 foo.bar 上演示了一些熟练的编码技能。\n接下来的面试,我是在谷歌总部花了一天时间去解决白板上的问题。\n之后在办公室的面试让我第一次确信这不是一个缜密严谨的恶作剧。其实当我第一次遇到 foo.bar 时,我问了几个朋友(包括谷歌的员工)是否听说过,他们都说没有,但都一致认为这是一个很棒的点子。\n虽然经过了两个星期,最终我还是收到了好消息:谷歌给我发了 Offer!我开心地接受了,并在下周与潜在的经理见面。\n神秘邀请出现的三个月后,我开始在谷歌工作了。\nFoo.bar 是一个很棒的招聘策略,他们让我感到自己很重要。与此同时,他们尊重个人隐私,没有一开始就索要我的个人信息。 \n总之,我喜欢他们设置的谜题,作为谷歌人的第一天我感到很高兴。",
            "shareCount": null,
            "keyValues": {
                "qid": null,
                "type": "article"
            },
            "imageUrls": [
                "https:\/\/pic3.zhimg.com\/v2-d31f7075e5b5a1273ac3f7a6a369013a_b.jpg",
                "https:\/\/pic3.zhimg.com\/v2-157242ffcbf299f7a67641f9df1e551e_b.jpg"
            ],
            "id": "24935879",
            "updateDate": 1484743644
        },
        {
            "posterId": "74cf1344f84726da70f17ca0f48ba155",
            "commentCount": 982,
            "posterScreenName": "DeepTech深科技",
            "title": "谷歌人工智能唇读术完虐人类,仅凭5千小时电视节目!人类古老的技艺再次沦陷",
            "url": "https:\/\/zhuanlan.zhihu.com\/p\/23982894",
            "publishDateStr": "2016-11-27T04:33:36",
            "publishDate": 1480221216,
            "likeCount": 4586,
            "content": "\n编者注:人工智能抢人类饭碗的趋势越来越明显了,最近,它又瞄准了一个新行业,而且一出手就比该行业专家们做的好。 \n主角还是 AI 大咖谷歌DeepMind,这次他们与英国牛津大学合作,通过机器学习大量的 BBC 节目,来学习一项全新的技能:唇读术。可怕的是,人工智能不仅学会了,而且让唇读专家们自愧不如。 \n唇读是人类一项独特的技艺,也是非常困难的一件事,它对于语言语境和知识理解的要求并不亚于视觉上的线索,然而 AI 又做到了。  \nAI 系统的学习对象是近 5000 小时的 BBC 各类节目,包括 Newsnight、BBC Breakfast、Question Time 等,所有视频资料加起来约有 11.8 万句话。\n谷歌DeepMind 和牛津大学的联合研究团队使用了 2010 年 1 月至 2015 年 12 月间的电视节目素材对 AI 系统进行训练,然后使用 2016 年 3 月- 9 月间播出的节目进行 AI 性能测试。\nBBC节目数据库。从左至右分别为:频道、节目名称、小时数、句数\n通过观察节目中说话者的唇形,AI 系统可以准确解读出文字,比如下面这些比较“拗口”的句子:“我们知道也将有上百位记者会出席”(We know there will be hundreds of journalists here as well),以及“根据国家统计局的最新统计数据”(According to thelatest figures from the Office of National Statistics)。\nDT 君试读了以上英文语句,发现唇形变化其实并不明显,而且电视节目中的语速是非常快的,难度可想而知。 \nBBC节目数据库中无字幕原片\n由谷歌DeepMind AI系统通过唇读同步的字幕\nAI能力再升级\n测试结果的具体数据可能更能说明问题:在 2016 年 3 月-9 月的节目库中随机选取的 200 个说话场景唇读对比测试中,人类专家的完全准确率为12.4%,而AI的完全准确率为46.8%。\n而且 AI 所犯错误中有很多其实无关紧要,比如在复数后面漏掉一个“s”之类。不过哪怕是这样,AI 还是完虐了人类唇读专家。\n人工智能业内专家称,“这绝对是建构全自动唇读系统的第一步!现有的各类庞大数据库完全可以支持深度学习技术的发展。” \n上方彩色图片为BBC节目数据库原始静态图片,下方黑白图片为两个不同的人说出“afternoon”(下午)这个单词时的唇型\n两周前,牛津大学曾开发了一个类似的深度学习系统LipNet,这套系统当时就已93.4%对52.3%大比分击败了人类唇读专家,但还不太说明问题,毕竟,LipNet和人类的竞赛是基于GRID语料库,这个数据库只包含51个特殊词汇。\n而DeepMind这次选取的BBC节目数据库却包含了惊人的17500个特殊词汇,对人工智能来说,这无疑是艰巨的挑战。\nGRID语料库中的音视频数据相对简单得多\n除此之外,BBC节目数据库中包含了人类在正常说话时使用的各种语法,而GRID语料库的33000个句子都采用相同表达,这使得句子很容易被预测,难度也相对低得多。 \nDeepMind和牛津大学的研究团队将开放BBC节目数据库供同行使用。来自LipNet的 Yannis Assael 表示将率先使用这一数据库来训练自己的唇读AI系统。\n把嘴唇排列起来\n如果要通过 BBC 节目这一类的视频数据库来训练自动唇读系统,必须要让机器预先学习每一个视频片段。可问题是,节目中的视频流与音频流往往不是完全同步的,甚至会出现多达1秒左右的时间差。 \n简单地说,这会让机器彻底蒙圈,因为视频里出现的唇形没办法和音频完美贴合,机器就无法将某一特定唇形和其发音对号入座。这样看来,AI 学习唇读术好像是不可能的。  \n解决这一问题的方案是让计算机先学会那些完全同步的音视频流,掌握发音与唇形间的关联,然后自行推断音视频流中那些画面是不同步的,再进行自动修正。DeepMind的 AI 系统自动处理的 5000 小时音视频流就是采用的这种方法。如果完全使用人工来进行同步校准,工作量简直大到不可想象。  \nDeepMind采用的“看、听、尝试、拼写”架构。首先解码出一个特征yi及两个向量,再通过向量去定位对应的输入音频视频流序列\n好了,问题来了,AI 唇读本事这么大,到底会被用来干嘛?DT 君脑子里首先出现的画面就是:“天网”默默监视着全人类的谈话,只要看看嘴型就知道你在说什么…… \n虽然细思恐极,但专家说了,说到监听这事儿,与其如此大动干戈,还不如超远程监听麦克风来得简单直接效果好。所以,目前来看,没什么好害怕的。  \n相比之下,AI 唇读技术更可能的应用方向是消费类电子设备,可以让设备知道用户想要说什么,哪怕不发出声音。“动动嘴皮子”这种事儿搞不好会成为未来人机交互的常态。 \n来自牛津大学 LipNet 研究团队的Yannis Assael对此技术的评价是:“我们相信AI唇读技术是一种非常实用的辅助性技术,比如更智能的助听器、不便出声的公共场合(Siri再也不用听见你的声音了),以及在嘈杂环境下精准的语音识别等。”",
            "shareCount": null,
            "keyValues": {
                "qid": null,
                "type": "article"
            },
            "imageUrls": [
                "http:\/\/pic2.zhimg.com\/v2-88b53afce7b8a7c90882c452ccd33209_b.jpg",
                "http:\/\/pic4.zhimg.com\/v2-050664e20404655a83c9aab7650009f7_b.jpg",
                "http:\/\/pic2.zhimg.com\/v2-d515bb9912a486e8042692c4d5c8b4ad_b.jpg",
                "http:\/\/pic4.zhimg.com\/v2-21811025559531e1c0fc35871d63bac3_b.jpg",
                "http:\/\/pic2.zhimg.com\/v2-ce2b04898c4eb7b2c816c3cb02e6e635_b.jpg",
                "http:\/\/pic1.zhimg.com\/v2-52d0729c970fe67ed83b14c53f61de2c_b.jpg",
                "http:\/\/pic3.zhimg.com\/v2-0bb5a4e7bc608a8dddfd3ba0af1e4a22_b.jpg",
                "http:\/\/pic1.zhimg.com\/v2-76ca6849a9da8b923820143f781ed048_b.jpg",
                "http:\/\/pic4.zhimg.com\/v2-dd5f41dddce4f809b0c41f009fd9a44b_b.jpg"
            ],
            "id": "23982894",
            "updateDate": 1480221216
        },
        {
            "posterId": "b00a26d3b0f800f4e547a97e9e157740",
            "commentCount": 693,
            "posterScreenName": "博达远航",
            "title": "Google 做了哪些恶?",
            "url": "https:\/\/www.zhihu.com\/question\/25078058#answer-123038177",
            "publishDateStr": "2016-09-21T11:49:28",
            "publishDate": 1474458568,
            "likeCount": 1763,
            "content": "本来不知道谷歌做过什么恶,但是当我看到一堆“你国”“你支”的答主时,我终于知道谷歌做了什么恶了。 我不介意“你党”这个词,但是“你国”“你支”挂嘴边都是些什么人? 一群标榜“自由、平等”的人,却用“文革”的手段来打击一些被他们标榜为“文革”的人。 “我们在讨论民主、自由,你丫给我闭嘴!你就是赵家的一条狗!你也配姓赵!百度的公关真low,谷歌根本没作恶!” 不想给百度洗什么地,虽然我一直认为百度的成功靠的是优化绝大多数中国人的搜索习惯,而非什么政治优待,当然,谷歌退出中国市场也是由于不符合中国的“政治正确”,但是作为一个网络公司,在另一个国家开拓市场,难道第一守则不就是要尊重人家的政治体制与相关法规的吗?百度也好,谷歌也罢,不过是为广大用户提供搜索服务的,两家公司都带有一定的政治倾向,不过若是将一个搜索引擎作为某种政治思维的思想火炬,那这种搜索引擎绝对需要世人的警惕。 百度作恶,可以让一个家庭收到打击,谷歌的恶,却可以实实在在的让一个国家亡国,谷歌的恶,真真的是细思极恐啊。",
            "shareCount": null,
            "keyValues": {
                "qid": "25078058",
                "type": "answer"
            },
            "thankCount": 227,
            "imageUrls": null,
            "id": "123038177",
            "updateDate": 1474458568
        }
    ]
}

Detailed Data

No Details

状态码

Status Code Return Value Format : JSON

{

message:"API rate limit exceeded",

retcode:100703

}

The API in our platform is only paid on number of calls. For the detail, please refer to the below table.

Status Code Code Meaning Detailed Description Need paid or not?
000000 invoke successfully(data is not null) 成功调用并返回数据
100002 Search no result 目标参数搜索没结果
100301 Account not found 用户帐号不存在
100303 Search no result 账号未收录
100000 Server internal error 服务器内部错误
100001 Network error 网络错误
100004 Target server error 目标服务器错误
100005 Param error 用户输入参数错误
100700 Invalid authentication credentials 授权失败
100701 API stopped 您的当前API已停用
100702 Account stopped 您的账户已停用
100703 API rate limit exceeded 并发已达上限
100704 API maintenance API维护中
100705 API not found with these values API不存在
100706 Please add api first 请先添加api
100707 Number of calls exceeded 调用次数超限
100802 Missing url param 'time' or uri path is not equal to 2 请求路径错误或者缺少"time"参数
100803 Wrong pageToken 参数pageToken有误

Often With The Purchase Of Data