如何使用XPath提取网页script中的JSON对象results字段?
仅用XPath提取script中的results部分内容
XPath是针对XML/HTML节点结构的查询语言,无法直接解析script标签内的JSON格式内容,只能通过字符串截取的方式从script文本中提取目标部分,具体实现如下:
可行的XPath表达式
substring-before(substring-after(//script[contains(text(),'results')]/text(), '"results": '), '}')
表达式逻辑
- 先通过
//script[contains(text(),'results')]/text()定位并获取目标script标签的全部文本内容 - 用
substring-after截取"results":之后的内容,得到results对应的数组起始部分 - 再用
substring-before截取到第一个}之前的内容,最终得到results对应的数组片段
注意事项
- 如果目标JSON存在换行、多余空格,可能需要调整匹配的字符串(比如把
"results":改成"results":\s*,但仅支持XPath 2.0及以上版本) - 若results对应的结构结尾不是
},需要根据实际JSON结构修改截取的终止符
内容的提问来源于stack exchange,提问作者Evgeniy
相关产品推荐
相关产品推荐

