首页 文章

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

提问于
浏览
-1

我想从Google表格中的亚马逊产品页面获取产品 Headers .

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

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

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

但我得到错误,导入的内容是空的 .

Demo Sheet

2 回答

  • 0

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

    =REGEXREPLACE(ImportXML("http://rads.stackoverflow.com/amzn/click/B01MSR8J29","//title"),"Amazon.com: ","")
    

    enter image description here

    如果你还想删除其余的面包屑,例如 : Clothing 只需将其修改为使用 OR 符号,其中正则表达式是 | ,如下所示:

    =REGEXREPLACE(ImportXML("http://rads.stackoverflow.com/amzn/click/B01MSR8J29","//title"),"Amazon.com: |: Clothing","")
    

    enter image description here

  • 1

    大部分HTML不是't valid XML, in particular Amazon'页面都不是有效的XML . 所以, importXML 失败了 .

    您可以通过custom function使用Apps脚本,如下所示(删除"amazon"之前的空格,这是为了防止SO重写URL):

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

    如果在脚本编辑器中输入自定义功能,则返回“Army Flag Shirt:成为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';
    }
    

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

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

相关问题