使用Google表格将ImportXML与XPath一起导入Amazon产品标题

时间:2016-11-29 20:01:45

标签: xpath import google-sheets

我想从Google表格中的亚马逊产品页面获取产品标题。

我已经搜索并尝试了不同的方法并想出了这个

= IMPORTXML( “https://www.amazon.com/dp/B01MSR8J29”, “// * [@ id中= 'productTitle']”)

我想获得标题: 陆军旗帜衬衫:成为兄弟军队TShirt

但我收到错误,导入的内容为空。

Demo Sheet

2 个答案:

答案 0 :(得分:1)

您只需使用//title xpath和一个简单的regexreplace即可删除标准Amazon.com:部分:

=REGEXREPLACE(ImportXML("https://www.amazon.com/dp/B01MSR8J29","//title"),"Amazon.com: ","")

enter image description here

如果您还想删除其他面包屑,例如: Clothing只需对其进行修改即可使用正则表达式为OR的{​​{1}}符号,如下所示:

|

enter image description here

答案 1 :(得分:0)

大部分HTML都不是有效的XML,特别是亚马逊的网页不是有效的XML。所以,importXML失败了。

您可以通过custom function使用Apps脚本,如下所示(删除#34; amazon"之前的空格,以防止SO重写网址):

=producttitle("https://www. amazon.com/dp/B01MSR8J29")  

返回"陆军旗帜衬衫:成为Brothers Army TShirt",前提是在脚本编辑器中输入自定义功能如下:

function productTitle(url) {   
  var content = UrlFetchApp.fetch(url).getContentText();
  var match = content.match(/<span id="productTitle".*>([^<]*)<\/span>/);
  return match && match [1] ? match[1] : 'Title not found';
}

这里,第一行获取页面的来源;然后正则表达式提取项目标题。

您会找到类似的帖子here,其中包括此活动是否符合亚马逊的服务条款的问题。