XPath的normalize-space()函数有什么用

admin 百科 14
normalize-space() 是 XPath 中用于清理空白字符的函数,它去除首尾空白并将中间连续空白压缩为单个空格,适用于文本提取、属性匹配及多节点拼接等场景。

XPath的normalize-space()函数有什么用-第1张图片-佛山资讯网

normalize-space() 是 XPath 里专门对付“乱空格”的实用函数,核心就两件事:砍掉开头和结尾的所有空白(包括空格、换行 \n、制表符 \t、回车 \r),再把中间一串连着的空白压缩成一个普通空格。

清理文本内容,避免换行缩进干扰

HTML 中的文本常因排版需要带大量 \n\t,直接取 text() 会得到像 "\n\t Hello World \n" 这样的结果。用 normalize-space() 后就变成 "Hello World" —— 干净、可读、方便后续处理。

  • 错误写法:response.xpath('//p[@class="title"]/text()') → 可能返回 ['\n ', '产品名称', '\n ']
  • 推荐写法:response.xpath('normalize-space(//p[@class="title"]/text())') → 直接得 "产品名称"

精准匹配带空格的属性或文本

有些元素的 class、title 等属性值前后有空格,或者中间多个空格不一致,用等号匹配会失败。normalize-space() 可先标准化再比较。

标签: html 爬虫

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~