在span类上导入XML-xpathquery

问题描述 投票:0回答:1

我正在尝试使用ImportXML函数将以下website的价格(5.99美元)导入我的Google工作表。

我似乎无法识别网站上的类名以使其工作。目前使用以下作为我的xpath_query://div[@class='']

我似乎无法使用xpath_query函数得到正确的importXML指向5.99美元。任何帮助表示感谢,谢谢!

html web-scraping google-sheets-formula
1个回答
0
投票

我不知道可以通过IMPORTXML访问价格信息,因为我相信每次加载页面时都需要查询价格数据,经过一些挖掘后,我在检查页面时遇到了这个页面:

Found the price here

这使用一个非常容易预测(因此易于构建)的URL查找价格。 URL基本上看起来像这样:

https://redsky.target.com/web/pdp_location/v1/tcin/[8 numbers]?pricing_store_id = [4个数字]&key = [32个字母数字字符]

因此,从后到前,最后的32个字符是我认为的某种键,类似于可能用于访问API的键。我认为这个密钥用于调用所请求信息的程序。中间的4个数字是某种商店识别号码。我认为这在某种程度上用于提取特定商店的定价信息。然后最重要的可能就是那个URL前面的那8个数字。我认为这8个数字是产品识别信息。这有点像sku号码。

现在,我做了一些测试,我想出了一个非常基本的解决方案,可以在大多数情况下完成工作,而无需使用任何自定义函数或脚本。

我们可以根据网页上产品的网址轻松构建价格查询网址。价格查找的8位数产品标识符是您提供的URL末尾的8位数字符串(方便地,此模式在任何产品页面中都是一致的)。

至于商店标识号(4个数字),看起来我们实际上可以将它设置为几乎任何值,它会起作用,所以对于我的例子,我将它设置为0000。

现在为了那个32键,最后。我尝试没有关键参数(“&key = [key]”),我得到一个错误,表示关键参数是必需的。但是,由于某些未知原因,我再次尝试了同样的事情,但我在URL中包含了(“&key =”)(只是没有实际的密钥),并且它已经工作了!它把我带到了正确的页面。

所以回顾一下,我们只需要产品编号,我们可以从URL(或Target.com上的任何URL)获取产品编号。

现在,在Sheets中,我们可以使用IMPORTDATA调用从此定价URL导入数据(请注意,IMPORTXML在此实例中不起作用)。当我们这样做时,我们得到这样的东西:

Imported Data

这将返回具有不同定价详细信息的各种列。对于此示例,我将假设我们对“current_retail”价格感兴趣,因为它与您帖子中的价格相匹配。

从这里,为了得到价格,输出为一个字符串,我们可以使用INDEX函数,并删除像SUBSTITUTE之类的标题。如果我们想要将输出解释为数字,我们只需要使用VALUE函数。

这是最终结果:

Table

这是一个支持所有功能的功能:

=VALUE(SUBSTITUTE(INDEX(IMPORTDATA("https://redsky.target.com/web/pdp_location/v1/tcin/"&RIGHT(A2,8)&"?pricing_store_id=0000&key="),,5),"current_retail:",""))

我们给它一个输入(产品的URL),它输出价格作为数字。这也适用于其他产品。但是,有时产品似乎有多个价格存在问题,例如不同尺寸选项等。在这些情况下,IMPORTDATA返回的数组看起来有点不同,这意味着INDEX函数可能无法获得正确的价格数据。可能有一个输出正确价格的解决方案,但这超出了这个答案的范围。

无论如何,我希望这将帮助您找到您可能想要的所有避孕套的价格。

© www.soinside.com 2019 - 2024. All rights reserved.