【问题标题】:IMPORTXML not selecting first elementIMPORTXML 未选择第一个元素
【发布时间】:2015-11-30 09:07:38
【问题描述】:

过去几天我一直在试图弄清楚如何使用以下 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 个价格。

我做错了什么?

【问题讨论】:

    标签: xml xpath import google-sheets


    【解决方案1】:

    看起来引用的网页源已更改。这时下面的XPath查询

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

    返回类似的结果:

    13.49 美元 12.14 美元 34.60 美元 30.50 美元 4.52 美元 13.49 美元 6.07 美元 160.50 美元

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

    1. 使用归一化空间函数:
    归一化空间(//*/span[@class= 'gcprice-value'])
    1. 在另一个 Google 表格函数中嵌套 IMPORTXML:
      (假设 A1 和 A2 分别持有 URL 和 XPath 查询
    =索引(IMPORTXML(A1,A2),1)
    1. 使用其他 XPath,例如 Chrome 开发者工具提供的 XPath
    //*[@id="addItemsToCartFromIdp"]/div[1]/div[1]/div/div[1]/p/span[2]

    【讨论】:

    • Index 是解决问题的简单方法,谢谢先生。
    【解决方案2】:

    您可以将您的函数包装在一个拆分公式中,以拆分新行字符,这实际上只是排除了其余数据:

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

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 2021-12-08
      相关资源
      最近更新 更多