如何用Xidel从HTML标签data-settings属性的JSON中提取图片URL
解决方法
你遇到的问题由两个原因导致:
- 属性名拼写错误:原HTML中存储JSON的属性是
data-settings,你写的查询语句中少了末尾的s,写成了data-setting - 转换JSON的方式不对:你用到的
$json是xidel处理接口返回纯JSON场景下的内置变量,不适用于HTML属性中嵌套JSON的场景,需要手动调用json()函数把属性的字符串值转换为JSON对象,才能读取内部字段
正确查询命令
你可以直接使用嵌套函数的写法实现需求:
xidel "https://example.com" -e "json(//div[@class='c-offerBox_galleryItem']/div/@data-settings)/image"
也可以用管道风格的写法,逻辑更清晰:
xidel "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/@data-settings ! json(.)/image"
执行命令后会直接输出image字段对应的图片路径。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

