You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过XPath提取div中不含链接的纯文本?

当然可行!

要提取这个div里不含链接的文本内容,用XPath完全可以做到,核心思路就是只选择div元素下的直接文本节点,忽略子元素(也就是那个a标签)的内容。

给你两种常用的实现方式:

  • 第一种:直接选中div下的所有文本节点
    用这个XPath表达式://div[@id='mydiv']/text()
    这个表达式会返回div里所有不属于子元素的文本片段(也就是some text 和la la la这两段),你只需要把这些片段拼接起来,再处理掉多余的空格就行。比如在Python的lxml库中,可以这么写:

    from lxml import etree
    html = """<div id="mydiv"> some text <a href="#">super link</a> la la la </div>"""
    tree = etree.HTML(html)
    text_parts = tree.xpath("//div[@id='mydiv']/text()")
    result = ''.join(text_parts).strip()
    print(result)  # 输出:some text la la la
    
  • 第二种:用XPath自带的函数直接合并并规范化文本
    如果想一步到位处理空格,可以用string-join和normalize-space组合:

    normalize-space(string-join(//div[@id='mydiv']/text(), ' '))
    

    这个表达式会先把所有文本片段用空格连接,再自动去掉首尾空格和中间的多余空格,直接得到整洁的some text la la la。

简单来说,XPath支持精准选择元素的子文本节点,完全能满足你提取不含链接文本的需求~

内容的提问来源于stack exchange,提问作者Eugene Chefranov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:06:43