Xidel 从 HTML 标签属性中获取 json
Xidel get json from HTML tag attribute
我正在尝试从 div 中提取图像 URL,其中文件的 link 在数据设置属性中存储为 json 对象:
<div class="c-offerBox_galleryItem">
<div data-component="magnifier" data-component-on="@load" data-settings="{
image: '/media/cache/gallery/rc/p2vgiqwd/images/42/42542/KRHE7Z29X19.jpg',
ratio: 1.5,
outside: 0
}"></div>
</div>
目前我可以通过以下方式访问数据设置:
xidel "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/@data-setting
输出是 json 对象。如何访问图像对象?
我想是这样的:
xidel "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/@data-setting/$json/image
可以,但不行。
不行,当“https://example.com”本身returns一个JSON.
时,你只能使用全局默认变量$json
要将字符串解析为 JSON,请使用 parse-json()
。在这种情况下,您还需要“自由”选项。
xidel -s "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/parse-json(@data-settings,{'liberal':true()})"
对于 Xidel 0.9.8 使用 json()
(不推荐用于较新的版本)。
xidel -s "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/json(@data-settings)"
我正在尝试从 div 中提取图像 URL,其中文件的 link 在数据设置属性中存储为 json 对象:
<div class="c-offerBox_galleryItem">
<div data-component="magnifier" data-component-on="@load" data-settings="{
image: '/media/cache/gallery/rc/p2vgiqwd/images/42/42542/KRHE7Z29X19.jpg',
ratio: 1.5,
outside: 0
}"></div>
</div>
目前我可以通过以下方式访问数据设置:
xidel "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/@data-setting
输出是 json 对象。如何访问图像对象?
我想是这样的:
xidel "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/@data-setting/$json/image
可以,但不行。
不行,当“https://example.com”本身returns一个JSON.
时,你只能使用全局默认变量$json
要将字符串解析为 JSON,请使用 parse-json()
。在这种情况下,您还需要“自由”选项。
xidel -s "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/parse-json(@data-settings,{'liberal':true()})"
对于 Xidel 0.9.8 使用 json()
(不推荐用于较新的版本)。
xidel -s "https://example.com" -e "//div[@class='c-offerBox_galleryItem']/div/json(@data-settings)"