30 <li class="start_1">
31 <input type="checkbox" name="word_ids[]" value="34" class="list_check">
32 </li>
这是我要解析的html文件的一部分。但是当我申请时
uh = open('1.htm','r')
data = uh.read()
print data
tree = ET.fromstring(data)
显示
xml.etree.ElementTree.ParseError:标记不匹配:第32行,第18列
我不知道出了什么问题?
答案 0 :(得分:0)
您正尝试使用 XML解析器解析HTML ;后者没有<input>
没有结束标记的概念。
使用实际的HTML解析器;如果要使用与ElementTree兼容的API访问结果,请使用lxml
项目includes an HTML parser。否则,使用BeautifulSoup(可以使用lxml
作为解析引擎)。
答案 1 :(得分:0)
要解析Python中的HTML,请使用lxml:
import lxml.html
// html string
dom = '<li class="start_1">...</li>'
// get the root node
root_node = lxml.html.fromstring(dom)
之后你可以玩它,例如使用xpath:
nodes = root_node.xpath("//*")