亚马逊ASIN查询:使用Scraper API将ASIN转化为产品记录
Web Data Collection Specialist
TL;DR:
- ASIN是亚马逊产品的主键,而亚马逊抓取API将其转换为完整的产品记录。 传递包含ASIN的产品URL,
scraper.amazon演员返回标题、品牌、定价、可用性、评分、卖家和类别字段,结果为结构化的JSON。 - 查找通过一个经过身份验证的端点运行:
POST https://api.scrapeless.com/api/v1/scraper/request,带有x-api-token头部,actor为scraper.amazon,并且input对象包含url和type为product。 - 响应在一个有效载荷中分离原始数据和解析数据。 每次调用返回三个顶级键——
html(渲染的页面),metadata(请求回声),和result(解析的产品对象)——因此您可以读取干净的字段或回退到HTML。 - 国家定位是一个一流的请求字段。 一个
proxy对象带有country为US,将查找通过美国居民出口路由,从而保持价格、可用性和购买框与美国购物者看到的一致。 - 同一个演员涵盖的不仅仅是产品查找。 将
type切换为keywords使该演员转变为搜索结果读取器(页面、关键字和一个result数组的列表),因此ASIN增强和发现共享一个集成。 - 免费开始。 新的Scrapeless账户包含免费的抓取API积分——请在app.scrapeless.com注册。
介绍:将ASIN转化为结构化产品记录
每个亚马逊产品都有一个十字符的ASIN,它是唯一一个在产品的标题、价格和卖家变化时保持不变的标识符。定价团队、目录构建者和AI代理都以此为基础。困难在于反向操作:从ASIN回到干净的当前产品字段。
手动抓取产品页面意味着渲染一个JavaScript重的页面,克服亚马逊对数据中心流量施加的访问挑战,然后对在布局和区域之间改变的标记编写选择器。选择器会失效,价格因地区而本地化到错误的国家,您解析的购买框卖家与您想要的区域不符。
本指南将带您了解如何在Scrapeless亚马逊抓取API上进行ASIN查找——广义抓取API线中的管理scraper.amazon演员。您发送一个产品URL,该演员在服务器端渲染并解析页面,然后您会获得一个结构化的产品对象。本文将涵盖端点及其参数、身份验证请求、真实响应架构,以及一个消费解析字段的Python读取器。
亚马逊ASIN查找API的功能
亚马逊抓取API接收一个包含ASIN的产品URL,并返回该列表的解析产品记录。您提供规范的产品路径——https://www.amazon.com/dp/<ASIN>——然后scraper.amazon演员在服务器上处理渲染、防检测和字段提取,然后返回JSON。
- 将ASIN解析为产品字段。 单个
type: product调用返回该URL中ASIN的标题、品牌、价格、可用性、评分、评论数、卖家和类别路径。 - 读取解析对象和原始页面。
result对象包含结构化字段;html键包含渲染页面的字节,用于解析器未提取的任何内容。 - 固定店面区域。
proxy.country值通过该国的居民出口路由查找,因此价格和可用性与该地区相匹配,而不是随机出口。 - 重用该集成进行发现。 同一个演员接受带有
type: keywords的搜索URL,并返回分页搜索结果,因此目录发现和每个ASIN的增强通过同一个端点进行。 - 跳过浏览器的准备工作。 不需要本地无头浏览器、不需要代理池,也不需要选择器维护——您可以从解析的架构中读取字段,而不必维护其中的任何内容。
端点和参数
亚马逊ASIN查找通过抓取API请求端点进行一次同步调用。
POST https://api.scrapeless.com/api/v1/scraper/request
请求体包含三个顶级字段:
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
actor |
字符串 | 是 | 抓取服务标识符——亚马逊使用scraper.amazon。 |
input |
对象 | 是 | 任务参数。对于ASIN查找:url(/dp/<ASIN>产品URL)和type(product)。 |
proxy |
对象 | 否 | 出口配置。country(例如US)固定店面区域。 |
在input内,ASIN查找使用两个字段:
input字段 |
示例 | 描述 |
|---|---|---|
url |
https://www.amazon.com/dp/B07ZPKBL9V |
规范的产品URL。ASIN位于/dp/路径段中。 |
type |
product |
选择产品详细解析器。将其设置为 keywords 以读取搜索结果 URL。 |
身份验证是一个单一的头部 x-api-token,包含您的 Scrapeless API 密钥。产品查询会在线返回 —— JSON 主体将在同一 HTTP 响应 中返回,因此对于 scraper.amazon 不需要结果轮询步骤。
在免费计划中获取您的 API 密钥: app.scrapeless.com
身份验证的 ASIN 查询
此请求查找一个 ASIN,并将出站限制在美国商店。x-api-token 头部携带您的密钥;请将其保存在环境变量中,而不是命令中。
bash
# 查找一个 ASIN (B07ZPKBL9V) 并将其锁定在美国商店。
curl -s -X POST "https://api.scrapeless.com/api/v1/scraper/request" \
-H "Content-Type: application/json" \
-H "x-api-token: ${SCRAPELESS_API_KEY}" \
-d '{
"actor": "scraper.amazon",
"input": {
"url": "https://www.amazon.com/dp/B07ZPKBL9V",
"type": "product"
},
"proxy": { "country": "US" }
}'
响应将作为一个 JSON 对象到达,包含 html、metadata 和 result 键。metadata 对象回显请求 —— 您请求的 type 和指向所存渲染页面的 rawUrl:
json
{
"rawUrl": "https://api.scrapeless.com/storage/scrapeless.scraper.amazon/<hash>.html",
"type": "product"
}
响应架构
解析的 结构化产品数据 位于 result 下。以下是针对 ASIN B07ZPKBL9V 返回的形状,字段名称与演员发出的完全相同,值从实时查询中捕获。
json
{
// 架构准确反映 scraper.amazon 产品解析器发出的内容。
// 值为 ASIN B07ZPKBL9V 的真实捕获;特性数组为示例。
"result": {
"asin": "B07ZPKBL9V",
"input_asin": "B07ZPKBL9V",
"parent_asin": "B0GR1S2JM2",
"title": "Apple iPhone 11, 64GB, PRODUCT RED - 解锁版 (翻新)",
"brand": "Apple",
"manufacturer": "Apple Computer",
"final_price": "$174.00",
"initial_price": "$174.64",
"discount": "-11%",
"availability": "库存仅剩4个 - 请尽快下单。",
"is_available": true,
"reviews_count": 60289,
"seller_name": "WirelessSource",
"categories": ["手机及配件", "手机"],
"domain": "https://www.amazon.com",
"url": "https://www.amazon.com/dp/B07ZPKBL9V",
"images_count": 1,
"features": ["...", "...", "..."]
}
}
产品对象包含的字段超过上述字段 —— 完整的 result 还暴露 buybox_seller、number_of_sellers、product_dimensions、item_weight、date_first_available、model_number、variations、product_details、prices_breakdown 和一个嵌套的 images 数组等。对于某些列表不适用的字段会返回空而不是缺失,因此请根据存在性而非缺失性编码。
有几个字段需要特别关注:
asin与input_asin与parent_asin。input_asin是您发送的 ASIN;asin是页面解析的列表;parent_asin是该列表所属的变体组。对于子变体,这三者都可能不同。- 价格是带有货币符号的字符串。
final_price是"$174.00",不是数字 —— 如果需要进行算术运算,请自行解析数字值,并读取prices_breakdown以获取组件价格。 is_available是布尔值用于分支。availability是人类可读的字符串("库存仅剩4个");is_available是机器标志。reviews_count是整数。 它在查询时计算该列表的评分,并在调用之间变化。
处理结构化输出
在代码中,查询是一个 POST 请求和对 result 的读取。以下 Python 读取器提取大多数目录需要的字段并打印平面记录。
python
import os
import requests
API_URL = "https://api.scrapeless.com/api/v1/scraper/request"
def lookup_asin(asin: str, country: str = "US") -> dict:
"""解析一个 Amazon ASIN 以获取其解析的产品记录。"""
payload = {
"actor": "scraper.amazon",
"input": {
"url": f"https://www.amazon.com/dp/{asin}",
"type": "product",
},
"proxy": {"country": country},
}
headers = {
"Content-Type": "application/json",
"x-api-token": os.environ["SCRAPELESS_API_KEY"],
}
response = requests.post(API_URL, json=payload, headers=headers, timeout=120)
response.raise_for_status()
return response.json()["result"]
if __name__ == "__main__":
product = lookup_asin("B07ZPKBL9V")
record = {
"asin": product.get("asin"),
"title": product.get("title"),
"品牌": product.get("brand"),
"价格": product.get("final_price"),
"库存": product.get("is_available"),
"评分数量": product.get("reviews_count"),
"卖家": product.get("seller_name"),
"类别": " > ".join(product.get("categories") or []),
}
print(record)
阅读者通过 `result` 处理所有内容,并通过 `.get()` 将缺失字段视为空值,这与行为者返回不适用字段为空的方式相符。为了丰富 ASIN 列表,遍历它们并保持适度的并发——几个工作者同时处理就足够了,这样可以保持每个商店的流出干净。
对于目录发现而不是每个 ASIN 的丰富,交换 `type` 为 `keywords` 并传递搜索 URL (`https://www.amazon.com/s?k=<query>`); 然后同样的调用返回一个包含 `keyword`、`current_page`、`total_page` 和一个 `result` 列表的对象,你可以将其反馈到上面的 ASIN 查找中。相同的模式扩展到竞争定价或目录管道的其余部分——将其与 [最佳亚马逊抓取工具指南](https://www.scrapeless.com/zh/blog/best-amazon-scrapers-2026) 中的排名概述配对,查看管理行为者与其他选择的适应性,并在扩大调用量之前查看 [抓取 API 定价](https://www.scrapeless.com/zh/pricing?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api)。
---
## 结论:构建一个 ASIN 键值的产品供给
一个亚马逊 ASIN 查找可简化为四个决策:发送 `/dp/<ASIN>` URL,将 `type` 设置为 `product`,将 `proxy.country` 固定到你想要的商店,并从 `result` 中读取解析字段。管理的 [亚马逊抓取 API](https://www.scrapeless.com/zh/product/scraping-api?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) 处理呈现、反检测和解析,因此你可以针对解析的模式进行编码,而不是一个在下一个设计中会破坏的选择集。
在这里,相同的 `scraper.amazon` 行为者为更广泛的管道提供信息:`type: keywords` 发现 ASIN,`type: product` 丰富每个 ASIN,设置国别流出保持每个地区的价格和可用性准确。完整的请求和响应参考可在 [Scrapeless 文档](https://docs.scrapeless.com?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) 中找到。将字符串价格视为字符串,基于 `is_available` 分支,并将空字段视为可为空而非错误。
---
## 准备好构建您的 AI 驱动的数据管道了吗?
加入我们的社区,领取免费计划,与构建亚马逊产品数据管道的开发者联系:[Discord](https://discord.gg/VU2vtbq7Q2) · [Telegram](https://t.me/scrapeless)。
在 [app.scrapeless.com](https://app.scrapeless.com/passport/login/?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) 注册以获得免费的抓取 API 额度,并根据你的目录需求调整上面的查询 ASIN、商店和地区。
---
## 常见问题
**问:什么是 ASIN,在哪里可以找到它?**
ASIN 是亚马逊产品的十字符标准识别号。它出现在产品 URL 的 `/dp/` 之后(例如,在 `amazon.com/dp/B07ZPKBL9V` 中的 `B07ZPKBL9V`)以及列表的 "产品信息" 部分。亚马逊抓取 API 直接从你传递的 `url` 中读取 ASIN。
**问:我应该发送 ASIN 还是完整 URL?**
你需要发送包含 ASIN 的完整产品 URL (`/dp/` 部分),并将 `input.type` 设置为 `product`。该行为者会从路径中解析出 ASIN 并将其作为 `input_asin`(你发送的内容)和 `asin`(页面解析出的内容)返还给你。
**问:通过 ASIN 抓取亚马逊产品数据是否合法?**
公共产品列表数据通常是可以访问的,但合法性取决于你的管辖区域、你收集的数据和亚马逊的服务条款。请审核适用条款,并为你的具体用例咨询法律顾问。Scrapeless 仅访问公共可用数据。
**问:我需要固定代理国家吗?**
为了保持价格和可用性的一致性,是的。亚马逊根据地区本地化价格、买家框和库存,所以将 `proxy.country` 设置为你想要的商店(例如,`US` 对应于 `amazon.com`)。否则,流出区域可能会有所不同,从而导致你读取的价格偏差。
**问:为什么响应中有些字段为空?**
产品解析器在其模式中返回每个字段,对于不适用于某个列表的字段,则将其留空而不是删除它们。更新的手机不会带有 `ingredients`;书籍不会带有 `item_weight`。在你的代码中将空字段视为可为空,并根据其存在与否进行分支。
**问:我可以一次查找多个 ASIN 吗?**
该端点每个请求解析一个 ASIN,因此遍历你的 ASIN 列表并逐个调用。保持适度的并发——同时几个工作者——以保持每个商店的流出干净,同时你充实一个目录。
**问:我如何找到可以查找的 ASIN?**
使用相同的演员,`input.type` 设置为 `keywords` 和搜索 URL(`amazon.com/s?k=<query>`)。它返回一个分页的 `result` 数组,其中包含带有 ASIN 的商品列表,然后您将这些 ASIN 输入到 `type: product` 查找中,以获取完整记录。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



