如何从 Wikipedia API 获取标题和摘要列表?

Posted

技术标签:

【中文标题】如何从 Wikipedia API 获取标题和摘要列表?【英文标题】:How to get a list of titles and summaries from the Wikipedia API? 【发布时间】:2016-10-20 22:46:04 【问题描述】:

我一直在尝试获取可能的结果列表(与在 Wikipedia 中执行搜索时会得到的结果相同)和文章的小摘要,通常是第一段。

到目前为止,我能得到的只是标题列表:

https://en.wikipedia.org/w/api.php?action=query&origin=*&list=search&srprop&srsearch=Albert%20Einstein&prop=extracts

或单个页面的摘要:

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=&explaintext=&titles=Albert%20Einstein

是否可以将这两个查询组合成类似于此的形式

https://en.wikipedia.org/w/api.php?action=query&origin=*&list=search&srprop&srsearch=Albert%20Einstein&prop=extracts

或者我是否必须迭代第一个查询的所有结果,然后获取每个查询的提取?

【问题讨论】:

【参考方案1】:

您可以使用generator parameter 组合来自两个或多个查询的结果。所以这个想法是generate 一个search 结果列表(您的第一个查询),包括每个结果的extracts 属性(您的第二个查询):

action=query&generator=search&prop=extracts

然后我们需要为生成器添加一些参数(它们都以“g”为前缀)

gsrsearch=Albert%20Einstein&gsrlimit=20

所有查询属性的参数(在我们的例子中仅用于提取):

exintro=1&explaintext=1&exchars=250&exlimit=20

最终查询将是:

https://en.wikipedia.org/w/api.php?action=query&origin=*&generator=search&prop=extracts&gsrsearch=Albert%20Einstein&gsrlimit=20&exintro=1&explaintext=1&exchars=350&exlimit=20

【讨论】:

这非常有效!我将如何向查询添加第二个道具(url)?在 prop=extracts 之后简单地附加 &url 似乎不起作用 @Danyx 添加其他属性,您必须用管道“|”分隔它们,例如:prop=categories|extracts|images|... 我们如何获得“另见”部分中所有可用链接的列表? @Abhishek See here 可以访问某些部分的内容。

以上是关于如何从 Wikipedia API 获取标题和摘要列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 API 从***获取地标地点的标题?

无法从 Wikipedia API 获取数据

如何使用Wikipedia的API获取Wikipedia内容?

如何使用 R 中的 rvest 通过以下方式从 Wikipedia 获取“类别”?

使用 Wikipedia API 获取特定时间范围内阅读次数最多的文章?

无法从 wikipedia API 恢复图像并将其显示在另一个视图控制器中