如何从维基百科 API 中获得清洁 json

How to get clean json from wikipedia API

我想从维基百科页面 https://en.wikipedia.org/wiki/February_2 获取结果 JSON。

我尝试使用他们的API:https://en.wikipedia.org/w/api.php?action=parse&page=February_19&prop=text&formatversion=2&format=json

尽管它以 Json 格式提供。内容为HTML。我只想要内容。

我需要一种方法来获得干净的结果。

我猜 clean 你指的是来源 wikitext。在这种情况下,您可以使用修订模块:

https://en.wikipedia.org/w/api.php?action=query&titles=February_2&prop=revisions&rvprop=content&formatversion=2&format=json

有关详细信息,请参阅 API:Get the contents of a page and API:Revisions

如果您想要没有标记的纯文本,您必须首先解析 JSON 对象,然后从 HTML 代码中提取文本:

function htmlToText(html) {
   let tempDiv = document.createElement("div");
   tempDiv.innerHTML = html;
   return tempDiv.textContent || tempDiv.innerText || "";
}

const url = 'https://en.wikipedia.org/w/api.php?action=parse&page=February_19&prop=text&format=json&formatversion=2&origin=*';

$.getJSON(url, function(data) {
  const html = data['parse']['text'];
  const plainText = htmlToText(html);
  const array = [...plainText.matchAll(/^\d{4} *–.*/gm)].map(x=>x[0]);
  console.log(array);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

更新:我根据下面的评论编辑了上面的代码。现在该函数提取所有列表项并将它们放入数组中。