0
我正在關注this question和this other one以解析維基百科中的表格。解析HTML tr會返回空列表
具體而言,我想只獲取所有行,並在每行內轉儲每列的內容。
我的代碼使用MacOS X下的xml
庫,但我得到的是一個行的空列表。
import xml.etree.ElementTree
s = open("wikiactors20century.txt", "r").read()
# tree = xml.etree.ElementTree.fromstring(s)
# rows = tree.findall()
# headrow = rows[0]
# datarows = rows[1:]
#
# for num, h in enumerate(headrow):
# data = ", ".join([row[num].text for row in datarows])
# print "{0:<16}: {1}".format(h.text, data)
table = xml.etree.ElementTree.XML(s)
rows = iter(table)
headers = [col.text for col in next(rows)]
for row in rows:
values = [col.text for col in row]
print dict(zip(headers, values))
輸入文件has been pasted here in PasteBin。 xml.etree.ElementTree.fromstring
和xml.etree.ElementTree.XML
版本都無法檢索行列表。但是,如果我製作一個虛擬表,如下所示
s = "<table> <tr><td>a</td><td>1</td></tr> <tr><td>b</td><td>2</td></tr> <tr><td>c</td><td>3</td></tr> </table>"
然後解析工作正常。
我在做什麼錯?解析文件之前是否需要進行一些清理?