我正在尝试编写一个 python 程序,可以在维基百科中搜索人们的出生日期和死亡日期。
例如,阿尔伯特爱因斯坦出生于:1879 年 3 月 14 日;逝世:1955 年 4 月 18 日。
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
infile = opener.open('http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=Albert_Einstein&format=xml')
page2 = infile.read()
这是可行的。page2
是来自 Albert Einstein 的维基百科页面的部分的 xml 表示。
我查看了本教程,现在我有了 xml 格式的页面... http://www.travisglines.com/web-coding/python-xml-parser-tutorial,但我不明白如何获取我想要的信息(出生和死亡日期)来自 xml。我觉得我必须接近,但是,我不知道如何从这里开始。
编辑
经过几次回复,我已经安装了 BeautifulSoup。我现在处于可以打印的阶段:
import BeautifulSoup as BS
soup = BS.BeautifulSoup(page2)
print soup.getText()
{{Infobox scientist
| name = Albert Einstein
| image = Einstein 1921 portrait2.jpg
| caption = Albert Einstein in 1921
| birth_date = {{Birth date|df=yes|1879|3|14}}
| birth_place = [[Ulm]], [[Kingdom of Württemberg]], [[German Empire]]
| death_date = {{Death date and age|df=yes|1955|4|18|1879|3|14}}
| death_place = [[Princeton, New Jersey|Princeton]], New Jersey, United States
| spouse = [[Mileva Marić]]&nbsp;(1903–1919)<br>{{nowrap|[[Elsa Löwenthal]]&nbsp;(1919–1936)}}
| residence = Germany, Italy, Switzerland, Austria, Belgium, United Kingdom, United States
| citizenship = {{Plainlist|
* [[Kingdom of Württemberg|Württemberg/Germany]] (1879–1896)
* [[Statelessness|Stateless]] (1896–1901)
* [[Switzerland]] (1901–1955)
* [[Austria–Hungary|Austria]] (1911–1912)
* [[German Empire|Germany]] (1914–1933)
* United States (1940–1955)
}}
所以,更接近了,但我仍然不知道如何以这种格式返回 death_date。除非我开始用re
? 我可以做到,但我觉得我在这项工作中使用了错误的工具。