十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

XPath技巧:用-after精准提取文本

XPath技巧:用-after精准提取文本 这里所讲的这篇文章, 本欲达成去处理掉, 于运用XPath之时, 去提取那特定文本内容之际, 所碰到的问题, 尤其是当径直运用text()这个函数, 却没办法获取到目标文本, 并且那目标文本处于特定分隔符之后的这种情况。借由介绍 -after函数究竟该如何使用, 以此 aides 读者能够精准地提取出所需文本, 并且给出XPath所对应的表达式示例。于开展网页数据抓取之际, 或者 XML 文档解析之时, XPath 乃是一种颇具强大力量的工具, 其用途在于对文档里的元素以及属性予以定位以及提取。然而, 有时一味直接运用 text() 函数, 有可能没办法获取到目标文本之处, 特别是当处于文本节点周边存在别的元素或者空白字符的情形之下。本文将会阐述借助 XPath 的-after函数去解决诸如此类问题的办法, 并且给出详尽示例展示。问题描述给定这样一些 HTML 代码片段形成的情况, 其目的在于从中提取出那一段文本, 即Aug 7, 2019 at 9:34 am ET。Author | Aug 7, 2019 at 9:34 am ETAuthor | Aug 7, 2019 at 9:34 am ET如果直接使用 //spanclassmeta这样的 XPath 表达式 /text() , 有可能没办法获得 期望的结果 , 缘由在于 text() 函数 返回的可不是其他特定 而是所有文本节点的集合 , 并且目标文本 也许并不是第一个文本节点 , 又或者前面有空白字符。解决方案使用 -after 函数-“after”函数能够从一个字符串里提取指定分隔符之后的那部分内容, 它具有如下这般的语法:substring-after(string, substring)其中 是要搜索的字符串 是分隔符。于这个示例情形当中, 我们能够运用 -after 函数去提取 “ | ” 之后所呈现的内容。首先呢, 我们得找寻到涵盖目标文本的 span 元素所处位置。其中一种办法是借助 span/a/rel 来确定包含作者链接的 span 元素所在之处。3.14.23.2025年12月5日发布的那编程语言稳定版本是14.2 , 这个版本属于3.14系列里的第二个维护更新。它包含了18项修复 , 着重解决了多进程 、数据类以及正则表达式等模块的回归问题 , 处理了如CVE-2025-12084等安全漏洞。此版本意味着自由线程模式移除GIL正式得到官方支持 , 是一个发展的重要里程碑。下载接着, 就能运用 -after 函数去提取 | 之后所呈现的内容。其完整的 XPath 表达式是这样的:substring-after(//span[span/a/relauthor], |)这个表达式先是去找到包含作者链接的span元素, 接着从中提取该元素字符串值里在“ | ”之后的那部分, 也就是“Aug 7, 2019 at 9:34 am ET”。示例代码 ( lxml)如下是运用 , 以及 lxml 库, 去实施上述 XPath 表达式的示例代码:from lxml import html html_string Author | Aug 7, 2019 at 9:34 am ET tree html.fromstring(html_string) xpath_expression substring-after(//span[span/a/relauthor], |) result tree.xpath(xpath_expression) print(result)Author | Aug 7, 2019 at 9:34 am ET tree html.fromstring(html_string) xpath_expression substring-after(//span[span/a/relauthor], |) result tree.xpath(xpath_expression) print(result)这段代码先是运用 lxml 库, 把 HTML 字符串解析成一个树形结构, 接着, 运用 xpath 方法, 执行 XPath 表达式, 而后将结果打印出来。注意事项总结直接用 text() 函数获取不了目标文本时, -after 函数是有效的办法一。指定分隔符, 就能精准提取目标文本内容。实际使用时, 要依据具体情形来挑合适的这个 XPath 表达式对应函数, 以此保证能精准拿到所需数据。
返回列表