IMPORTXML不选择第一个元素

时间:2015-11-30 09:07:38

标签: xml xpath import google-sheets

我花了几天时间试图弄清楚如何使用以下XMLIMPORT来获取第一个元素。

这是我试图抓取的网站的网址: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个价格。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

看起来推荐的网页来源发生了变化。此时以下XPath查询

//span[@class = 'gcprice-value']

返回类似的结果:

      $13.49
      $12.14
      $34.60
      $30.50
       $4.52
      $13.49
       $6.07
     $160.50

为了只获得第一个价格,有几种选择:

  1. 使用normalize-space函数:
  2. normalize-space(//*/span[@class = 'gcprice-value'])
    
    1. 将IMPORTXML嵌套在另一个Google表格功能中:
      (假设A1和A2分别包含URL和XPath查询
    2. =Index(IMPORTXML(A1, A2),1)
      
      1. 使用Chrome开发者工具提供的其他XPath
      2. //*[@id="addItemsToCartFromIdp"]/div[1]/div[1]/div/div[1]/p/span[2]
        

答案 1 :(得分:0)

您可以将您的函数包装在拆分公式中,以拆分新行字符,这有效地最终排除了其余数据:

=SPLIT(IMPORTXML("http://www.grainger.com/product/DURACELL-Battery-5LE23", "//span[@class='gcprice-value']"),CHAR(10))

enter image description here