Erd*_*dem 27 wikipedia-api mediawiki-api
维基百科文章可能有Infobox模板.通过以下调用,我可以获得包含Infobox的文章的第一部分.
http://en.wikipedia.org/w/api.php?action=parse&pageid=568801§ion=0&prop=wikitext
Run Code Online (Sandbox Code Playgroud)
我想要的是一个只返回Infobox数据的查询.这可能吗?
Gaʀ*_*ʀʀʏ 28
您可以通过对Wikipedia 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
Run Code Online (Sandbox Code Playgroud)
更换titles=部分与你的页面标题,并format=xmlfm以format=json如果你想在JSON格式的文章.
基于garry 的回答,您可以让 Wikipedia 通过参数将信息框解析为 HTML,rvparse如下所示:
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0&rvparse
Run Code Online (Sandbox Code Playgroud)
请注意,这两种方法都不会仅返回信息框。但是,您可以从 HTML 内容中提取(通过例如Beautiful Soup)tablewith class 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18223 次 |
| 最近记录: |