当前位置: 首页 > article >正文

lxml提取某个外层标签里的所有文本

html如下

<div data-v-1cf6f280="" class="analysis-content">
    选项D错误:
    <strong>在衡量通货膨胀时,</strong>
    <strong>消费者物价指数使用得最多、最普遍</strong>
    。
</div>

解析html文本

from lxml import etree
html1 = '''
<div data-v-1cf6f280="" class="analysis-content">
    选项D错误:
    <strong>在衡量通货膨胀时,</strong>
    <strong>消费者物价指数使用得最多、最普遍</strong>
    。
</div>
'''

html = etree.HTML(html1)

方法一:join

s1 = html.xpath('//div/text()')

# 去掉空格和换行符
s11 = [x.strip() for x in s1]
print('div标签文本:',s1);print('div标签文本去掉空格和换行符:',s11)
s2 = html.xpath('//strong/text()')
print('strong标签文本',s2)
s3 = ''.join(s2)
s11[1] = s3
s = ''.join(s11)

print('拼接后:\n',s)

方法二:遍历父子节点

def extract_text(element):
    text = []

    # 获取当前元素的文本(不包括子元素)
    if element.text:
        text.append(element.text.strip())

    # 遍历所有子元素,递归提取
    for child in element:
        text.extend(extract_text(child))  # 递归调用处理子元素

    # 获取当前元素尾部的文本(如果有)
    if element.tail:
        text.append(element.tail.strip())

    return text


# 获取<div>标签内的所有文本内容
text_list = extract_text(html)

# 拼接所有文本并输出
final_text = ''.join(text_list)
print("拼接后的文本:\n", final_text)


http://www.kler.cn/a/451688.html

相关文章:

  • Logback日志框架中的继承机制详解
  • 深度学习之超分辨率算法——FRCNN
  • linux安装字体(亲测)
  • 14:30面试,14:08就出来了,面试问的有点变态呀。。。
  • Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
  • Docker 设置代理的三种方法(2024年12月19日亲自测试)
  • Linux的mmap
  • 什么是领域驱动设计
  • [Unity] ShaderGraph动态修改Keyword Enum,实现不同效果一键切换
  • PaddlePaddle飞桨Linux系统Docker版安装
  • js的eval
  • Chromium GN 目标指南 - view_examples 自定义Button示例 (六)
  • 【es6复习笔记】let 和 const 命令(1)
  • Django models中的增删改查与MySQL SQL的对应关系
  • leetcode hot100 环形链表2
  • 深度学习环境安装
  • 内网穿透玩法之京东云亚瑟路由器刷神卓互联教程
  • 树莓集团:以产教融合助力人才培养
  • yii2 手动添加 phpoffice\phpexcel
  • 开放世界目标检测 Grounding DINO
  • 机器人C++开源库The Robotics Library (RL)使用手册(一)
  • CentOS7下的vsftpd服务器和客户端
  • 基于推理的目标检测 DetGPT
  • Python选择题训练工具:高效学习、答题回顾与音频朗读一站式体验
  • 如何将excel表格内的日期自动更新为当天,一个公式就OK了
  • Docker服务发现新纪元:探索Consul的无限魅力