【问题标题】:Get ASIN from pasted Amazon url从粘贴的亚马逊网址获取 ASIN
【发布时间】:2014-02-11 11:27:37
【问题描述】:

无论是使用 PHP、Javascript 还是使用亚马逊产品广告 API,我都不在乎……我可以全部使用它们。我已经环顾四周,在这里发现了其他一些相同的问题,但它们没有我能看到的有效答案。

有人处理过这个吗?最好的情况是,亚马逊在其 API 中添加了一个功能,您可以在其中向他们传递一个 URL,然后他们返回页面的 ASIN 和其他产品信息。

【问题讨论】:

  • 只是出于兴趣-“来自粘贴的亚马逊网址”是什么意思?有人将网址粘贴到文本框中?
  • 是的。我的页面上有一个文本框,有人可以将 URL 粘贴到其中。
  • 它是什么样子的?你肯定可以用正则表达式来解决它吗?
  • 我看到的正则表达式有一些来回,这使得难以始终如一地做到这一点。一方面,URL 结构有几种不同的方式。我怎么知道我是否已经考虑了所有这些?
  • 亚马逊没有在任何地方定义它?它没有某种类型的标准查询字符串?您似乎面临的问题是您不知道如何获取它,所以无论是正则表达式还是其他方式,您目前仍在猜测

标签: php api amazon


【解决方案1】:

我在基于 php 的网站上使用以下正则表达式来关联我的金钱链接,它可能并不完美,但效果很好:

/(?:dp|o|gp|-)\/(B[0-9]{2}[0-9A-Z]{7}|[0-9]{9}(?:X|[0-9]))/

本质上,它会在以下之一之后查找类似 ASIN 或 ISBN 的字符串:“dp/”、“o/”、“gp/”或“-/”以避免误报。 “-/”对于旧的“obidos”格式链接是可能的——即使亚马逊不再生成它们,它们仍然可以解析。它仅捕获 ASIN/ISBN,因此 $matches[0] 将始终包含正确的字符串(在 php 中)。未在非美国链接上测试。我没有仔细研究过,ASIN 格式或 url 格式可能不同。

【讨论】:

    【解决方案2】:

    挑战在于亚马逊 URL 不是单一格式,有多种类型,具体取决于所使用的标识符类型和产品类型。

    标识符或密钥可以是 ASIN,或其他类型的产品标识符,例如

    有效值:SKU |统一专利证书 | EAN | ISBN(仅限美国,当搜索索引为 Books 时)。 UPC 在 CA 区域设置中无效。 (通过http://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemLookup.html

    亚马逊网址通常(但不总是)采用以下形式 http://www.amazon.com/(title of product)/dp/(identifier)/(更多随机字符在这里不相关)。

    除了 /dp/,您还可能会看到 /product/、/ASIN/、/e/。

    最好的办法是使用正则表达式提取(标识符),然后调用亚马逊商品查找 API,将所有各种类型作为 IdType,将标识符作为 ItemID 传递,然后查看匹配的内容。

    如果没有更多详细信息或特定用例,就不可能知道 URL 是否具有 ASIN、ISBN、SKU 或其他类型的标识符,因此您必须查询所有这些标识符,请参阅匹配什么,然后从 Item Lookup 返回负载中提取 ASIN。

    【讨论】:

      【解决方案3】:

      另外 - 亚马逊鼓励使用以下形式的缩短永久链接:http://amzn.to/xxxxxxx

      这些是简单的 HTTP 301 重定向,您必须遵循这些重定向才能获取包含 ASIN 的完整链接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        • 2019-12-06
        • 1970-01-01
        • 2010-12-18
        相关资源
        最近更新 更多