如何通过 MediaWiki API 从 Wikipedia 文章中获取信息框?
维基百科文章可能有信息框模板。通过以下调用,我可以获得包含信息框的文章的第一部分。
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
我想要一个仅返回信息框数据的查询。这可能吗?
Wikipedia articles may have Infobox templates. By the following call I can get the first section of an article which includes an Infobox.
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
I want a query which will return only Infobox data. Is this possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以通过对 Wikipedia API 的 URL 调用来完成此操作,如下所示:
将
titles=
部分替换为您的页面标题,并将format=xmlfm
替换为format=json
如果您想要 JSON 格式的文章。You can do it with a URL call to the Wikipedia API like this:
Replace the
titles=
section with your page title, andformat=xmlfm
toformat=json
if you want the article in JSON format.与其自己解析信息框,这相当复杂,不如看看DBPedia,它提取了维基百科信息框作为数据库对象。
Instead of parsing infoboxes yourself, which is quite complicated, take a look at DBPedia, which has Wikipedia infoboxes extracted out as database objects.
构建于 garry 的回答,您可以通过 rvparse 参数让 Wikipedia 将信息框解析为 HTML,如下所示:
请注意,两者都不是方法将仅返回信息框。但是,您可以从 HTML 内容中提取(通过,例如 Beautiful Soup)
table
与类infobox
。在 Python 中,您可以执行以下操作
Building on garry's answer, you can have Wikipedia parse the info box into HTML for you via the
rvparse
parameter like so:Note that neither method will return just the info box. But from the HTML content, you can extract (via, e.g., Beautiful Soup) the
table
with classinfobox
.In Python, you do something like the following
如果页面有右侧信息框,则使用此 URL 以 txt 形式获取它。
我的示例是使用元素 氢。您所需要做的就是将“Hydrogen”替换为您的标题。
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
If the page has a right side infobox, then use this URL to obtain it in txt form.
My example is using the element hydrogen. All you need to do is replace "Hydrogen" with your title.
https://en.wikipedia.org/w/index.php?action=raw&title=Template:Infobox%20hydrogen
If you are looking for JSON format use this URL, but it's not pretty.
https://en.wikipedia.org/w/api.php?action=parse&page=Template:Infobox%20hydrogen&format=json