用于跟踪产品是否为:stock/its 价格的 XPath

XPath to track if a product is: in stock/its price

我完全是初学者,对 HTML 和 Java 了解一点,所以我的问题听起来可能很愚蠢。

我基本上是在尝试使用 Google 电子表格来跟踪 item/its 价格 on this website 的可用性。我正在使用“IMPORTXML”功能,可以轻松获取产品名称或其描述。 但是我无法获得价格,因为它需要我先 select 一个尺码,我不知道如何通过“IMPORTXML”功能做到这一点。

现在,这个returns“导入的内容是空的。”:

=IMPORTXML("https://www.artisan-jp.com/fx-hien-eng.html","//p[@id='price']")

通过 Google 脚本创建一个函数可行吗?如果可以,我该怎么做?

谢谢!

您将无法使用 IMPORTXML 获取任何数据,因为 Javascript 用于显示价格。使用IMPORTFROMWEB addon,您可以激活JS渲染,但您只会获得默认产品的价格。

最好使用 Selenium + Python(或任何其他语言)来实现您的目标。这样您就可以点击并 select 特定产品。(尺寸、颜色、硬度)

如果您真的想使用 Google 解决方案来执行此操作,则必须在 Google Apps 脚本中编写自己的自定义函数(通过 POST 请求具体 url : https://www.artisan-jp.com/get_syouhin.php)。像 :

function myFunction() {
var formData = {
  'kuni': 'on',
  'sir': '140',
  'size': '1',
  'color': '1',
};

var options = {
  'method' : 'post',
  'payload' : formData
};

Logger.log(UrlFetchApp.fetch('https://www.artisan-jp.com/get_syouhin.php', options).getContentText());  
}

在第一部分 (formData) 中,您声明了 POST 的参数。这些参数对应产品的属性。

Sir :

XSoft = 140
Soft = 141
Mid = 142

Size :

S = 1
M = 2
L = 3
XL = 4

Color :

Red = 1
Black = 5

输出:

您将获得参考编号、产品描述及其价格。 当产品没有库存时,输出中有前面的 NON

现在由您从输出中提取感兴趣的数据并填充工作簿的单元格。

假设您的函数名为“mouse”。只需使用 SPLIT 即可正确显示数据。

=SPLIT(mouse();"/")

要仅提取价格,您可以先使用 SPLIT,然后再使用 QUERYSUBSTITUTE 用于将结果强制转换为数字。

=SUBSTITUTE(QUERY(SPLIT(mouse();"/");"select Col4");".";",")*1