首页 > 解决方案 > Google 表格 IMPORTXML 查询

问题描述

我正在使用 Google 表格作为网络抓取工具。

我一直在使用这个 IMPORTXML

=importxml(A1, "//div[@class='review-content']//text()")

这就是结果

Row1: {"publishedDate":"2019-01-05T22:19:28Z","updatedDate":"null","reportedDate":"null}

Row2: {"publishedDate":"2018-12-10T22:19:28Z","updatedDate":"null","reportedDate":"null}

Row3: {"publishedDate":"2018-12-09T22:19:28Z","updatedDate":"null","reportedDate":"null}

但我无法弄清楚如何仅获取“publishedDate”值。例子:

Row1: 2019-01-05T22:19:28Z

Row2: 2018-12-10T22:19:28Z

Row3: 2018-12-09T22:19:28Z

关于我可能遗漏的任何想法

标签: xpathgoogle-sheetsgoogle-sheets-formulagoogle-sheets-importxml

解决方案


这3个样品怎么样?我从你的问题样本中想到了它们。我认为您的情况有几个答案。因此,请将此视为其中的 3 个样本。

它假设 URL 放在单元格“A1”中。

样品 1:

=ARRAYFORMULA(MID(IMPORTXML(A1, "//div[@class='review-content']//text()"),19,20))
  • 当每个值的字符串长度都是常数时,怎么办?
    • 该值由 检索MID()

样本 2:

=ARRAYFORMULA(INDEX(SPLIT(IMPORTXML(A1, "//div[@class='review-content']//text()"),"""",TRUE,TRUE),,4))
  • 当每个值的位置都是常数时,这个怎么样?
    • 该值由SPLIT()和检索INDEX()

样品 3:

=ARRAYFORMULA(REGEXEXTRACT(IMPORTXML(A1, "//div[@class='review-content']//text()"),"publishedDate"":""(\w.+?)"""))
  • 当每个值的模式都是常数时,这个怎么样?
    • 该值由 检索REGEXEXTRACT()

参考:

如果这些不是你想要的结果,我很抱歉。那时,为了正确复制您的情况,您能否提供@Rubén所说的您正在使用的 URL?


推荐阅读