正则表达式可以与维基百科API一起使用吗?

时间:2017-07-13 16:03:48

标签: wikipedia wikipedia-api

我必须在几个维基百科版本中进行大量查询,以查找不在DBpedia中的信息(例如,维基百科页面中的单词数量)。从一个词,如“巴黎”,我想肯定的是法国首都的维基百科页面,而不是安大略省巴黎的页面。因此,我不得不在我的查询中使用这些类别,如下所示:

https://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=paris+incategory:Departments_of_France

问题:维基百科类别不一致。对我来说理想的是能够用作正则表达式的类别,比如“包含法语”这个词。

我在API文档中搜索了几个小时,但却无法理解如何执行此操作。欢迎任何帮助或建议。

2 个答案:

答案 0 :(得分:1)

您可以使用insource:/\[\[Category:[^\]]{0,32}France]]/之类的搜索表达式。 (example)请参阅Help:CirrusSearch#Regular expression searches(通配符长度限制似乎是避免超时的必要条件)。

答案 1 :(得分:1)

另一种可能更适合您的用例的方法是使用维基数据查询服务。文本搜索功能是有限的(但听起来并不像你实际需要它们)并且语法更复杂(SPARQL +你需要知道维基数据具有哪些属性约定)但你可以表达类似于" in法国"

(将鼠标悬停在Pxx / Qxx上以获取信息。)