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