我希望在编辑之前和之后获取维基百科页面上的编辑文本。我有这个网址:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dtbook PUBLIC "-//NISO//DTD dtbook 2005-2//EN" "http://www.daisy.org/z3986/2005/dtbook-2005-2.dtd">
<dtbook xmlns="http://www.daisy.org/z3986/2005/dtbook/" xmlns:m="http://www.w3.org/1998/Math/MathML" version="2005-2" xml:lang="eng">
<head />
<book>
<frontmatter><doctitle /></frontmatter>
<bodymatter>
<level1>
<p>Test</p>
<m:math xmlns:dtbook="http://www.daisy.org/z3986/2005/dtbook/" id="math0001" dtbook:smilref="nativemathml.smil#math0001" altimg="nativemathml0001.png" alttext="sigma-summation UnderScript i equals zero OverScript infinity EndScripts x Subscript i" overflow="scroll">
<m:mrow>
<m:mstyle displaystyle="true">
<m:munderover>
<m:mo>∑</m:mo>
<m:mrow>
<m:mi>i</m:mi>
<m:mo>=</m:mo>
<m:mn>0</m:mn>
</m:mrow>
<m:mi>∞</m:mi>
</m:munderover>
<m:mrow>
<m:msub>
<m:mi>x</m:mi>
<m:mi>i</m:mi>
</m:msub>
</m:mrow>
</m:mstyle>
</m:mrow>
</m:math>
</level1>
</bodymatter>
<rearmatter><level1><p /></level1></rearmatter>
</book>
</dtbook>
但是,我想要json格式的文本,以便我可以直接在我的程序中使用它。 MediaWiki是否提供了在编辑后为我提供新旧文本的API,或者我是否必须使用解析器解析HTML页面?
答案 0 :(得分:1)
试试这个:https://www.mediawiki.org/wiki/API:Revisions
有一些选项可供使用,例如:
rvparse:解析修订内容。出于性能原因,如果使用此选项,则rvlimit强制为1.
rvdifftotext:将每个修订版差异化的文本。
如果那些失败仍然
然后,一旦获得父ID,您就可以比较两者的文本。
答案 1 :(得分:0)
在JavaScript中留下注释,说明如何查询Wikipedia API以获取所有最近的编辑。
在某些情况下,文章被锁定,无法看到最近的编辑。
?这篇文章由于故意破坏而受到半保护
按以下方式查询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>