维基百科API:从解析请求中排除引用



我试图从一个特定的页面获得链接按照页面上显示的顺序,或合理地接近。我相信我找到了正确的API调用来使用解析请求,但是我注意到我得到了很多我认为的"垃圾"链接,这些链接实际上是在引用中完成的链接。例如,对于阿尔伯特·爱因斯坦,我做请求(http://en.wikipedia.org/w/api.php?action=parse&format=json&page=Albert%20Einstein&redirects=∝links),我将得到出现在E. T.惠特克和JSTOR等参考文献中的链接。在我看来,参考文献中的这些链接都是"垃圾"。

或者,我查看了查询命令,但发现带有prop=link的查询命令最终只会给我按字母顺序排列的链接,这失去了我想要查看的部分信息。此外,这个API查询还包括来自引用中的这些"垃圾"链接。

无论如何,我要告诉解析命令忽略引用标记内的链接,还是我需要使用API检索文本,然后自己在客户端进行解析?

我也不认为有一种方法可以得到你想要的东西。如果您要求MediaWiki解析页面,它将在返回页面之前解析所有的模板引用。如果我需要做你想要的,我只会得到页面的原始维基文本:

http://en.wikipedia.org/w/api.php?action=parse&格式= json&页面=艾伯特% 20 einstein&重定向=,=提案wikitext

,然后使用它进行我自己的解析。使用正则表达式查找所有维基链接应该很容易。从页面中删除所有模板也很容易。

我认为没有直接的方法可以做到这一点。一种解决方法是获取页面的文本,删除实际显示引用({{reflist}}<references />)的代码,然后使用API来解析该文本。这将添加一个"垃圾"链接到Help:Cite errors/Cite error refs without references,但很容易忽略一个页面。

最新更新