提取html某标签中文字时,文字中含有:“<sub>2</sub>O<sub>5</sub>”,导致提取的文字不符合预期。
解决方法:
1#coding=utf-8 2from lxml import etree 3from HTMLParser import HTMLParser 4 5html = u''' 6<html> 7 <span id="chTitle">退火对Nb<sub>2</sub>O<sub>5</sub>薄膜的折射率和厚度的影响</span> 8</html> 9''' 10 11tree = etree.HTML(html) 12 13# 结果为:退火对Nb 14content1 = tree.xpath("//span[@id='chTitle']/text()")[0] 15print content1 16 17# 结果为:退火对Nb<sub>2</sub>O<sub>5</sub>薄膜的折射率和厚度的影响 18table = tree.xpath("//span[@id='chTitle']")[0] 19content2 = etree.tostring(table, method='html') 20print HTMLParser().unescape(content2)[19:-8]