如何解决MediaWiki API:搜索特定命名空间中的页面,包含子字符串不是前缀
我想从没有“母类别”的维基百科类别列表中抓取页面。在这种情况下,菜肴 - 我想获得所有页面的列表,例如 Category:vegetable dishes
、Category: Italian dishes
,然后抓取并标记其中的页面。我知道如何在已知类别中搜索页面,但有数百个类别包含子字符串菜肴 + 感觉应该很容易列出它们。
然而,mediaWiki allcategories search 似乎只允许按前缀搜索(例如 from 和 to 结果),而 old opensearch documentation 仍然允许按子字符串搜索,这不再受支持。 (请参阅 updated API docs + 如果我尝试它也不起作用)
这是very doable in the wikipedia browser,我认为抓取搜索结果可能会更快,但我想知道我是否遗漏了什么?
解决方法
感谢@Tgr 指出我错过了常规的 search API,它允许进行文本搜索、指定的命名空间等。
我的实例的正确查询是:
curl "https://en.wikipedia.org/w/api.php?action=query&list=search&srnamespace=14&srsearch=Dishes&format=json"
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。