API 用于在维基百科上进行编辑

API for getting edits on Wikipedia

我想获取维基百科页面上编辑前后的文本。我有这个 url:

https://en.wikipedia.org/w/index.php?diff=328391582&oldid=328391343

但是,我想要 json 格式的文本,以便我可以直接在我的程序中使用它。 MediaWiki 是否提供任何 API 在编辑后给我新旧文本,或者我是否必须使用解析器解析 HTML 页面?

试试这个:https://www.mediawiki.org/wiki/API:Revisions

有几个选项可能有用,例如:

  1. rvparse:解析修订内容。出于性能原因,如果使用此选项,rvlimit 将强制为 1。

  2. rvdifftotext:要区分每个修订的文本。

如果这些都失败了,还有

  1. rvprop / ids:获取 revid,从 1.16 开始,获取 parentid

然后一旦你得到父ID,你就可以比较两者的文本。

在 JavaScript 中留言,如何查询维基百科 API 以获取所有最近的编辑。

在某些情况下文章被锁定,最近的编辑无法看到。

This article is semi-protected due to vandalism

如下查询 API 允许读取所有编辑。

fetch("https://en.wikipedia.org/w/api.php?action=query&origin=*&prop=revisions&format=json&titles=Timeline_of_the_2020_United_States_presidential_election&rvslots=*&rvprop=timestamp|user|comment|content")
.then(v => v.json()).then((function(v){
    main.innerHTML = JSON.stringify(v, null, 2)
 })
)
<pre id="main" style="white-space: pre-wrap"></pre>

另见 How to get Wikipedia content as text by API?

你可以试试WikiWho。它跟踪维基百科中写入的每个标记(准确率为 95%)。简而言之,它为每个令牌分配 ID,并根据上下文跟踪它们。您只需要检查两次修订之间的 ID 是否存在(即使修订不连续也有效)。

有一个wrapper and a tutorial。教程中有一个错误,因为文章的名称发生了变化(而不是“生物玻璃”,你应该寻找“Bioglass_45S5”)

您可以(有时)在线访问教程: