加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 使用lxml.html提取文本

发布时间:2020-12-16 23:31:36 所属栏目:Python 来源:网络整理
导读:我有一个 HTML文件: html psomestr sup1/sup anotherstr /p/html 我想将文本提取为: somestr1anotherstr 但我无法弄清楚该怎么做.我写了一个to_sup()函数,它将数字字符串转换为上标,所以我得到的最接近的是: for i in doc.xpath('.//p/text()|.//sup/text
我有一个 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,

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读