Joh*_*Lim 7 api mediawiki wikipedia-api mediawiki-api
我正在尝试从维基百科获取所有内容:Unusual_articles,我可以通过调用此端点来获取表内容列表:
https://en.wikipedia.org/w/api.php?action=parse&format=json&prop=sections&page=Wikipedia:Unusual_articles
Run Code Online (Sandbox Code Playgroud)
我得到的数据看起来像这样:
{
title: "Wikipedia:Unusual articles",
pageid: 154126,
sections: [
{
toclevel: 1,
level: "2",
line: "Places and infrastructure",
number: "1",
index: "T-1",
fromtitle: "Wikipedia:Unusual_articles/Places_and_infrastructure",
byteoffset: null,
anchor: "Places_and_infrastructure"
},
{
toclevel: 2,
level: "3",
line: "Americas",
number: "1.1",
index: "T-2",
fromtitle: "Wikipedia:Unusual_articles/Places_and_infrastructure",
byteoffset: null,
anchor: "Americas"
},
...
Run Code Online (Sandbox Code Playgroud)
但是我无法获得特定部分的内容.例如,under Americas
是带有链接和简短描述的表的列表,但有没有办法从API获取链接和简短描述?
Ter*_*nja 10
您可以通过两个步骤使用MediaWiki API和action = parse来获取每个页面部分的内容.首先,您必须从页面中获取所有部分:
https://en.wikipedia.org/w/api.php?action=parse&prop=sections&page=Wikipedia:Unusual_articles
Run Code Online (Sandbox Code Playgroud)
从响应中你看到该部分Americas
有index =T-2
(T表示被转换的页面),它来自fromtitle =Wikipedia:Unusual_articles/Places_and_infrastructure
.现在我们使用这些索引和fromtitle来获取该部分的内容:
https://en.wikipedia.org/w/api.php?action=parse&page=Wikipedia:Unusual_articles/Places_and_infrastructure§ion=2&prop=...
Run Code Online (Sandbox Code Playgroud)
哪里:
prop=wikitext
- 给出解析的原始部分wikitext.prop=text
- 给出wikitext的解析部分文本.