维基百科文章可能有Infobox模板。通过以下电话,我可以得到包含Infobox的文章的第一部分。如何从Mediawiki API的维基百科文章中获取信息框?
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
我想要的是一个将只返回Infobox数据的查询。这可能吗?
维基百科文章可能有Infobox模板。通过以下电话,我可以得到包含Infobox的文章的第一部分。如何从Mediawiki API的维基百科文章中获取信息框?
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
我想要的是一个将只返回Infobox数据的查询。这可能吗?
您可以通过URL调用API维基百科这样做:
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xmlfm&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0
与你的页面标题更换titles=
部分,format=xmlfm
到format=json
如果你想在JSON格式的文章。对@加里的回答
大厦,你可以有维基百科通过rvparse
参数解析信息框成HTML,你像这样:
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0&rvparse
注意,无论是方法将返回只是的信息框。但是从html内容中,您可以提取table
与infobox
类(通过,例如,美丽)。
在Python
,你不喜欢以下
resp = requests.get(url).json()
page_one = next(iter(resp['query']['pages'].values()))
revisions = page_one.get('revisions', [])
html = next(iter(revisions[0].values()))
# now parse the html
东西如果页面右侧的信息框,然后使用这个URL获得它的TXT格式。 我的例子是使用元素氢。你所需要做的就是用你的标题替换“氢”。
https://en.wikipedia.org/w/index.php?action=raw&title=Template:Infobox%20hydrogen
如果您正在寻找JSON格式使用这个URL,但它不是漂亮。
https://en.wikipedia.org/w/api.php?action=parse&page=Template:Infobox%20hydrogen&format=json
[获取维基百科的信息框部分]的可能的复制(http://stackoverflow.com/questions/3312346/getting-the-infobox-section-of-wikipedia) – Nemo
参见[如何提取来自维基百科信息框的信息?](https://stackoverflow.com/questions/33862336/how-to-extract-information-from-a-wikipedia-infobox)了解更详细的答案。 – Tgr