3

我正在尝试按照页面上显示的顺序或合理关闭的顺序从特定页面获取链接。我相信我使用解析请求找到了正确的 API 调用,但是我注意到我得到了很多我认为的“垃圾”链接,这些链接实际上是在引用中完成的链接。例如,对于阿尔伯特·爱因斯坦,我执行请求(http://en.wikipedia.org/w/api.php?action=parse&format=json&page=Albert%20Einstein&redirects=&prop=links),我将获得出现在ET Whittaker 和 JSTOR 等参考资料。出于我的目的,参考文献中的这些链接是“垃圾”。

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

无论如何,我是否可以告诉 parse 命令忽略引用标签中的链接,或者我是否需要使用 API 检索文本,然后自己在客户端进行解析?

4

2 回答 2

3

我也不认为有办法得到你正在寻找的东西。如果您要求 MediaWiki 解析页面,它将在返回之前解析所有模板引用。如果我需要做你正在寻找的东西,我只会获取页面的原始 wikitext:

http://en.wikipedia.org/w/api.php?action=parse&format=json&page=Albert%20Einstein&redirects=&prop=wikitext

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

于 2013-04-28T18:12:24.620 回答
2

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

于 2013-04-28T10:58:24.300 回答