【问题标题】:Olympics Schedule IMPORTXML - Google Sheets奥运会时间表 IMPORTXML - Google 表格
【发布时间】:2021-08-31 16:34:38
【问题描述】:

更新 - 澄清示例

我如何说服IMPORTXML 去抓取要么 空的<td> 元素或向下三个节点的特定属性(如果存在)?

--

我正在尝试将日程表从Olympics website 提取到#reasons 的 G 表中。我得到了IMPORTHTML 不会做我想做的事情,然后花了比我想提到的更多的时间撞IMPORTXML 和XPath。这是我得到的最接近的:

=importxml("https://olympics.com/tokyo-2020/en/schedule/","//[@id='schBoxInner']/table/tbody/tr")

这成功地将正确的行标题以及所有适当的 <td> 列元素拉入 G 表格,因为如果我输入(空)列,我会收到 #REF 错误。

在我看来,这应该很容易 - 我想要一张表,其中包含事件正在发生的日期,以及事件是否正在发生。例如,开幕式在 23 日举行(由于桌子不稳定,所以是 D 列:

21st 22nd 23rd 24th
Opening ceremonies TRUE
Basketball TRUE

诀窍在于它不是那个日期的TRUE 值:它是<a href=blah><img=blah></a>。我只想在 G Sheets 的那个单元格中包含 SOMETHING,因为根据我之前的公式,它显示...什么都没有。

如果它真的应该这么难,请现在告诉我。

【问题讨论】:

  • 如果您给出您尝试使用 XPath 选择的内容的具体示例,将会很有帮助。我无法理解您认为的“孩子”、“孙子”等元素。您提供的唯一细节是“图片上的 ALT 文字”,但不清楚这与您声明的目的有何关系。
  • 为了清楚起见更新了,我希望,@DavidDenenberg。我真的只是希望它在 <td> 元素有一个子节点时显示一些值(任何值)。
  • 当我更全面地阅读您的评论时,我正在反思,是的,目的可能不明确......最终,我正在尝试构建一个类似于他们在奥运会网站上的表格,那里……特定赛事的举办日期,和/或是否有奖牌仪式。或者……这就是我开始的地方……现在我只是想弄清楚为什么我认为应该简单的事情在 XPath 中并不简单,因为它对我来说是新事物,而且我认为这是一个有趣的问题。 =P
  • 尽管@Deera 的反馈非常好,但问题仍未得到解答。这可能吗?在更多地考虑它时,部分显而易见的是,每个相关单元格的 TD 中都有内容......但是没有 TEXT,这似乎是 XPath/Google 表格所需要的。我会让这个继续炖,也许稍后再回来。
  • 老实说,太多时间无法将您在问题中的叙述与您尝试选择的内容的细节相匹配。 XPath 选择节点列表。显示一个具体示例,说明您希望使用单个表达式选择哪些节点,社区可能更容易提供详细的答案。

标签: google-sheets xpath google-sheets-formula


【解决方案1】:

有一个奥运日历的维基百科@https://en.wikipedia.org/wiki/Template:2020_Summer_Olympics_calendar

你可以直接使用,

=importhtml("https://en.wikipedia.org/wiki/Template:2020_Summer_Olympics_calendar","table",3)

拿到桌子。 example

【讨论】:

    猜你喜欢
    • 2012-12-04
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2019-03-15
    • 1970-01-01
    相关资源
    最近更新 更多