在 Google 个工作表 ImportXML 中提取元数据

Extracting Metadata in Google Sheets ImportXML

是否仍然可以在 Google 表格中使用 ImportXML 从站点提取价格等元数据?

我在以下页面上尝试了多种不同的变体,但均未成功:https://www.officedepot.com/a/products/273646/Office-Depot-White-Copy-Paper-Letter/

=IMPORTXML("https://www.officedepot.com/a/products/273646/Office-Depot-White-Copy-Paper-Letter/","//*[contains(@itemprop,'price')]/@content")

=IMPORTXML("https://www.officedepot.com/a/products/273646/Office-Depot-White-Copy-Paper-Letter/","//meta[@itemprop='price']/@content")

我应该可以使用这个公式得到 return“58.99”,但我不断收到 NA 错误。

OfficeDepot 似乎阻止了来自 GoogleSheets 的请求。 一些线索:

您需要 API key and an ImportJSON script (credits to Brad Jasper) to do this. Once you have installed the script and activated your API key, add a search engine。在设置中,您必须定义目标网站。

在某处复制您的搜索引擎 ID (cx=XXXXXXXXXX)。完成此操作并假设 A 列中有 urls,您可以粘贴到单元格 B2 中:

=REGEXEXTRACT(A2;"products\/(\d+)")

这是为了提取产品 ID。

在单元格 C2 中,您可以粘贴:

="https://customsearch.googleapis.com/customsearch/v1?cx={yoursearchengineID}&key={yourAPIkey}&num=1&fields=items(pagemap(offer(price)))&q="&B2

我们构造 API 的请求。您需要在此公式中添加 API 键和搜索引擎 ID。

在单元格 D2 中,您可以粘贴:

=QUERY(ImportJSON(C2);"SELECT Col1 label Col1''";1)

这用于导入 .json 结果并稍作清理。

注意:对于某些产品(新产品),此方法可能会失败。我常驻欧洲。所以 ”;”公式中的应替换为“,”。