我有一个
HTML文件:
- <html>
- <p>somestr
- <sup>1</sup>
- anotherstr
- </p>
- </html>
我想将文本提取为:
somestr1anotherstr
但我无法弄清楚该怎么做.我写了一个to_sup()函数,它将数字字符串转换为上标,所以我得到的最接近的是:
- for i in doc.xpath('.//p/text()|.//sup/text()'):
- if i.tag == 'sup':
- print to_sup(i),else:
- print i,
解决方法
只是不要在XPath中的sup节点上调用text().
- for x in doc.xpath("//p/text()|//sup"):
- try:
- print(to_sup(x.text))
- except AttributeError:
- print(x)