0

当我进行 api 查询时,有时我有几页的列表。例如 http://en.wikipedia.org/wiki/Ask提供了很多页面,我需要网站“Ask.com,一个网络搜索引擎,以前是 Ask Jeeves” 我可以只查询某些类别(“网站” )? 我如何检查每个页面的类别作为响应?谢谢

4

3 回答 3

1

没有简单的方法可以满足您的要求。你可以这样做:

  1. 获取页面列表的消歧页面列表。您可以通过列出该页面上的链接 ( action=query&prop=links) 来做到这一点。
  2. 从上一步中获取所有页面的类别,并使用它来确定您要查找的页面。这不是那么简单,因为Ask.com不是直接在 中Category:Websites,而是在其子类别之一中。
于 2013-10-10T16:47:07.503 回答
1

我有几页的列表,例如http://en.wikipedia.org/wiki/Ask

问题是你没有得到一个页面列表,你只是得到一个普通页面,它位于disambiguation pages category 中。要获取列表,您需要获取该页面中的链接

我可以只查询某些类别(“网站”)吗?

不,mediawiki 不支持。

我如何检查每个页面的类别作为响应?

使用该links属性作为标题列表生成器并获取响应中每个页面的类别。在您的情况下,那将是http://en.wikipedia.org/w/api.php?action=query&titles=Ask&generator=links&prop=categories(不要忘记continue查询)。

于 2013-10-10T16:48:17.577 回答
0

如果您对“询问”的“全文搜索”没问题,您可以这样做:

http://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=ask%20incategory:%22Online%20companies%22&prop=info

如您所见,“搜索”文本是[询问类别:“在线公司”]

同样的解决方案也可以在: Wikipedia API: how to search an term in a specific category

于 2013-11-15T03:33:55.990 回答