python – 使用lxml.html提取文本

前端之家收集整理的这篇文章主要介绍了python – 使用lxml.html提取文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 HTML文件
  1. <html>
  2. <p>somestr
  3. <sup>1</sup>
  4. anotherstr
  5. </p>
  6. </html>

我想将文本提取为:
somestr1anotherstr

但我无法弄清楚该怎么做.我写了一个to_sup()函数,它将数字字符串转换为上标,所以我得到的最接近的是:

  1. for i in doc.xpath('.//p/text()|.//sup/text()'):
  2. if i.tag == 'sup':
  3. print to_sup(i),else:
  4. print i,

但我的ElementStringResult似乎没有一个方法获取标签名称,所以我有点迷失.任何想法如何解决

解决方法

只是不要在XPath中的sup节点上调用text().
  1. for x in doc.xpath("//p/text()|//sup"):
  2. try:
  3. print(to_sup(x.text))
  4. except AttributeError:
  5. print(x)

猜你在找的Python相关文章