当前位置: 首页 > 知识库问答 >
问题:

如何从维基百科API获取标题和摘要列表?

惠泳
2023-03-14

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

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

https://en.wikipedia.org/w/api.php?action=query

或单个页面的摘要:

https://en.wikipedia.org/w/api.php?action=query

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

https://en.wikipedia.org/w/api.php?action=query

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

共有1个答案

田成仁
2023-03-14

您可以使用生成器参数组合两个或多个查询的结果。所以这个想法是生成一个搜索结果列表(你的第一个查询),包括每个结果(你的第二个查询)的提取属性:

action=query&generator=search&prop=extracts

然后我们需要为generator添加一些参数(它们的前缀都是“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
 类似资料:
  • 有办法从维基百科获得所有标题/摘录对吗?到那一刻,我发现了两种方法: 下载摘录转储,但它包含不完整/无效的摘录,我想是作为文章的第一行。 使用MediaWiki API请求摘录,但它非常慢,因为每个请求只能获得单个摘录(批量查询不适用于摘录): /w/api.php?action=query 我想获得摘录,因为它们是由MediaWiki API生成的,而不需要负担维基百科服务器。可能吗? 顺便说一

  • 我试图从维基百科页面的摘要部分提取链接。我尝试了以下方法: 此url提取页面的所有链接:https://en.wikipedia.org/w/api.php?action=query 对于提取与任何节关联的链接,我可以根据节id进行过滤-例如。, 对于同一页面的部分,我可以使用以下url:https://en.wikipedia.org/w/api.php?action=parse 对于同一页面的

  • 我对德语维基百科API的查询中的空格有问题。在英文版中,一切工作正常,查询被正确地规范化和重定向。我试过“卡尔·马克思”作为例子。 https://en.wikipedia.org/w/api.php?action=query 但是,德语版本不会重定向,尽管标准化会给出相同的结果: https://de.wikipedia.org/w/api.php?action=query 有人知道该怎么办吗?

  • 我正在尝试从这个维基百科页面中获取表数据:https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Nepal我试过用熊猫警犬。Read Office HTML语法,但它对我试图擦除的表无效(证实了CavID-19在尼泊尔地区的病例)。 我试着用Beautifulsoup和pandas来搜集数据,但没有用

  • 在本章中,我展示了上一个练习的解决方案,并分析了 Web 索引算法的性能。然后我们构建一个简单的 Web 爬虫。 15.1 基于 Redis 的索引器 在我的解决方案中,我们在 Redis 中存储两种结构: 对于每个检索词,我们有一个URLSet,它是一个 Redis 集合,包含检索词的 URL。 对于每个网址,我们有一个TermCounter,这是一个 Redis 哈希表,将每个检索词映射到它出

  • 我想从数据帧中获取列标题列表。数据帧将来自用户输入,因此我不知道将有多少列或它们将被调用。 例如,如果我得到这样的DataFrame: 我会得到这样的列表: