【问题标题】:I'm trying to parse data from a webpage using the importXML function in excel, but the data doesn't have a class我正在尝试使用 excel 中的 importXML 函数解析网页中的数据,但数据没有类
【发布时间】:2020-12-25 07:13:27
【问题描述】:

首先我想说的是,我是各种编码的新手。我通常会花费 10 倍以上的时间使用 google 来尝试自动化某些事情,而不是手动完成。我在网上找到了一张 Google 表格,可以从特定网页上查找 MTG 集换式卡牌的价格。

这是我在谷歌工作表中使用的工作功能。
=Index(IMPORTXML('Price Links Sale'!A13, "//span[@class='price price--withoutTax']"),1)

“价格链接销售”是包含我正在查找的每张卡片的所有 URL 的工作表。
例子: https://www.facetofacegames.com/assassins-trophy-guilds-of-ravnica/ 这拉低了无箔近薄荷卡的价格。完美的。效果很好。

我想在我的谷歌表格上添加另一列来检查库存数量。

我尝试的是

=Index(IMPORTXML('Price Links Sale'!A13, "//span[@class='data-product-stock']"),1)

我意识到在这种情况下 span 没有类。我尝试了这个以及其他一些没有成功的事情。其中之一是
=Index(IMPORTXML('Price Links Sale'!A13, "//span[not@class='data-product-stock']"),1)

我不知道我在做什么,我只是在尝试一下。这是一件不可思议的简单事情吗?

每个网页都使用单选按钮来检查铝箔、非铝箔、接近完好状态和已播放状态的价格。如果我告诉函数我正在寻找铝箔价格,是否可以使用 excel 函数来使用单选按钮来获取这些价格?

【问题讨论】:

    标签: excel xpath google-sheets excel-formula xml-parsing


    【解决方案1】:

    我相信你的目标如下。

    • 您想使用 IMPORTXML 从 <span data-product-stock>0</span> 检索值 0
    • 您要使用的网址是https://www.facetofacegames.com/assassins-trophy-guilds-of-ravnica/

    在这种情况下,我认为data-product-stock 是没有价值的属性。那么//span[@data-product-stock]的xpath呢?公式如下。

    示例公式:

    =IMPORTXML(A1,"//span[@data-product-stock]")
    
    • URL 被放到单元格“A1”中。

    结果:

    参考:

    补充:

    模式一:

    例如,当您想从<span data-product-stock>0</span><div class="card-stock"><span>0</span> In Stock</div> 中检索0 的值时,也可以使用//div[contains(@class,'stock')]/span[1] 的xpath。

    示例公式:
    =IMPORTXML(A1,"//div[contains(@class,'stock')]/span[1]")
    
    结果:

    • 在这种情况下,检索到 10 个项目。

    模式2:

    例如,当您要检索18 in stock 中的18 时,下面的示例公式怎么样?

    示例公式:
    =JOIN("",IFERROR(ARRAYFORMULA(REGEXEXTRACT(IMPORTXML(A1,"//script"),"stock"":(\d+),")),""))
    
    • 在这种情况下,似乎无法直接检索该值。所以在这个示例公式中,值是从 Javascript 中检索的。
    结果:

    【讨论】:

    • 在写这篇文章的时候,有 18 个库存,我得到的结果是零,就像你一样。但我认为你为我指明了正确的方向!
    • @Brendin Lloyd 感谢您的回复。我带来的不便表示歉意。首先,我想确认一下我对你的问题的理解是否正确。我了解到您想使用 IMPORTXML 从<span data-product-stock>0</span> 检索值0。我的理解正确吗?当我看到 URL 的 HTML 时,只有一个 <span data-product-stock>0</span> 的值。所以我无法理解At the time of writing this, there are 18 in stock, and I am getting a result of zero, just as you are.。我为此道歉。可以问一下具体情况吗?
    • @Brendin Lloyd 现在,关于18 in stock,我想我或许能够理解它。因此,我在答案中添加了另外 2 个示例公式。你能确认一下吗?如果这不是您期望的结果,我再次道歉。
    • 模式2正是我需要的,非常感谢!!昨晚深夜和一整天我都在阅读 ImportXML 教程,我想我可以自己弄清楚。我永远不会接近你在模式 2 中使用的公式。
    猜你喜欢
    • 1970-01-01
    • 2019-10-16
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2022-06-16
    相关资源
    最近更新 更多