Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跟踪产品是否有库存/其价格的XPath_Xpath_Google Sheets_Google Sheets Formula_Domxpath_Google Sheets Importxml - Fatal编程技术网

跟踪产品是否有库存/其价格的XPath

跟踪产品是否有库存/其价格的XPath,xpath,google-sheets,google-sheets-formula,domxpath,google-sheets-importxml,Xpath,Google Sheets,Google Sheets Formula,Domxpath,Google Sheets Importxml,我是一个完全的初学者,懂一点HTML和Java,所以我的问题可能听起来很愚蠢 我基本上是在尝试使用谷歌电子表格来跟踪商品的可用性/价格。我使用的是“IMPORTXML”函数,在获取产品名称或描述方面没有问题但是,我无法获得价格,因为它需要我先选择一个尺寸,我不知道如何通过“IMPORTXML”函数来实现。 现在,它返回“导入的内容为空”。: 通过Google脚本创建函数是否可行?如果是,我该怎么做 谢谢大家! 您将无法使用IMPORTXML获取任何数据,因为Javascript用于显示价格。使用

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

我基本上是在尝试使用谷歌电子表格来跟踪商品的可用性/价格。我使用的是“IMPORTXML”函数,在获取产品名称或描述方面没有问题但是,我无法获得价格,因为它需要我先选择一个尺寸,我不知道如何通过“IMPORTXML”函数来实现。

现在,它返回“导入的内容为空”。:

通过Google脚本创建函数是否可行?如果是,我该怎么做


谢谢大家!

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

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

如果你真的想用谷歌解决方案实现这一点,你必须在谷歌应用程序脚本中编写自己的自定义函数(通过特定url发送
POST
请求:
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
输出:

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

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

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

=SPLIT(mouse();"/")

要仅提取价格,可以使用
SPLIT
然后
QUERY
<代码>替换
用于将结果强制为数字

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

当我查看网页的源代码时,我会看到

。因此,我假设价格随后通过Javascript动态加载。价格可能隐藏在这里:-但我不确定Google Sheets是否允许您执行任意HTTP请求。谢谢!正如我所说,我是一个完全的初学者,试图通过给自己设置挑战来学习(这对我目前的水平来说似乎有点太难了,但很有趣!)。虽然我理解大部分代码,但在获取输出时遇到了问题。我试着运行这个函数,只是在最后加上“return1;”,我得到了1,这样电子表格就可以识别这个函数了。但是,当我尝试返回Logger.log部分时,它只是空的。更新:我刚刚尝试了“return response.getContentText();”,结果成功了!但是,如何只提取部分数据?这对我的追踪器来说并不重要,但我很好奇。
=SUBSTITUTE(QUERY(SPLIT(mouse();"/");"select Col4");".";",")*1