我正在尝试解析一些维基百科文章的信息框,但似乎无法弄清楚。我已经为 Albert Einstein 下载了文件,我尝试解析 Infobox如下所示:
我正在尝试将信息框中的每个项目放入结构或地图中:
m["name"] = "Albert Einstein"
m["image"] = "Einstein...."
...
...
m["death_date"] = "{{Death date and age|df=yes|1955|4|18|1879|3|14}}"
...
...
我什至无法隔离信息框。我得到:
[[{{Infobox scientist
| name = Albert Einstein
| image = Einstein 1921 by F Schmutzer - restoration.jpg
| caption = Albert Einstein in 1921
| birth_date = {{Birth date|df=yes|1879|3|14}}]]
API 中的 Albert Einstein 条目可以在以下位置找到:
https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=revisions&rvprop=content&format=json
编辑:
基于对这个问题的公认答案,我尝试了以下正则表达式:
(?=\{Infobox)(\{([^{}]|(?1))*\})
但得到:
panic: regexp: Compile(`(?=\{Infobox)(\{([^{}]|(?1))*\})`): error parsing regexp: invalid or unsupported Perl syntax: `(?=`
编辑 #2:如果有办法通过他们的 API 提取信息,那么我会接受....我一直在阅读文档但找不到它。
江户川乱折腾
相关分类