过去几天我一直在尝试弄清楚如何使用以下 XMLIMPORT 只获取第一个元素。
这是我要抓取的网站的 URL:https://www.grainger.com/product/DURACELL-Battery-5LE23
我试图在不获取所有其他价格的情况下获取 25.45 美元的价格(17.36 美元) 6.97 美元、32.80 美元、7.29 美元、19.09 美元、24.34 美元、149.05 美元)。
我一直在使用:=IMPORTXML("https://www.grainger.com/product/DURACELL-Battery-5LE23 ", "//span[@itemprop='price']/text()[1]") 它一直向我显示所有 8 个价格。
我做错了什么?
最佳答案
看起来引用的网页源已更改。这时候下面的XPath查询
//span[@class = 'gcprice-value']
返回类似的结果:
$13.49 $12.14 $34.60 $30.50 $4.52 $13.49 $6.07 $160.50
为了只得到第一个价格,有几种选择:
- 使用归一化空间函数:
normalize-space(//*/span[@class = 'gcprice-value'])
- 将 IMPORTXML 嵌套在另一个 Google 表格函数中:
(假设A1和A2分别持有URL,XPath查询
=Index(IMPORTXML(A1, A2),1)
- 使用另一个 XPath,例如 Chrome 开发者工具提供的 XPath
//*[@id="addItemsToCartFromIdp"]/div[1]/div[1]/div/div[1]/p/span[2]
关于xml - IMPORTXML 不选择第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994860/