维基百科文章可能有Infobox模板。通过以下调用,我可以获取包含Infobox的文章的第一节。
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
我想要一个只返回Infobox数据的查询,这是否可行?
维基百科文章可能有Infobox模板。通过以下调用,我可以获取包含Infobox的文章的第一节。
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
我想要一个只返回Infobox数据的查询,这是否可行?
您可以通过向维基百科API发出如下的URL调用来完成此操作:
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格式的文章。
不要自行解析信息框,这相当复杂。可以查看DBPedia,该网站将维基百科信息框提取为数据库对象。
在Garry的回答的基础上,您可以通过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
infobox
的table
。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