微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MediaWiki API:搜索特定命名空间中的页面,包含子字符串不是前缀

如何解决MediaWiki API:搜索特定命名空间中的页面,包含子字符串不是前缀

我想从没有“母类别”的维基百科类别列表中抓取页面在这种情况下,菜肴 - 我想获得所有页面的列表,例如 Category:vegetable dishesCategory: Italian dishes,然后抓取并标记其中的页面。我知道如何在已知类别中搜索页面,但有数百个类别包含子字符串菜肴 + 感觉应该很容易列出它们。

然而,mediaWiki allcategories search 似乎只允许按前缀搜索(例如 from 和 to 结果),而 old opensearch documentation 仍然允许按子字符串搜索,这不再受支持。 (请参阅 updated API docs + 如果我尝试它也不起作用)

这是very doable in the wikipedia browser,我认为抓取搜索结果可能会更快,但我想知道我是否遗漏了什么?

screenshot of search query

解决方法

感谢@Tgr 指出我错过了常规的 search API,它允许进行文本搜索、指定的命名空间等。

我的实例的正确查询是:

curl "https://en.wikipedia.org/w/api.php?action=query&list=search&srnamespace=14&srsearch=Dishes&format=json"

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。