> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/api-targets/cn/dian-zi-shang-wu/amazon.md).

# Amazon

使用网页爬虫API，您可以抓取并解析各种类型的 **亚马逊** 页面；下面概述所有受支持的爬虫及其对应的 `source` 值。

| 来源                   | 说明                                                                                 | 专用解析器                                                                                                |
| -------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `amazon_product`     | [**商品页面**](/api-targets/cn/dian-zi-shang-wu/amazon/product.md) 的你选择的 ASIN。         | 是。                                                                                                   |
| `amazon_search`      | [**搜索结果**](/api-targets/cn/dian-zi-shang-wu/amazon/search.md) ，用于您选择的搜索词。          | 是。                                                                                                   |
| `amazon_pricing`     | [**优惠列表**](/api-targets/cn/dian-zi-shang-wu/amazon/pricing.md) 可用于你选择的 ASIN。       | 是。                                                                                                   |
| `amazon_sellers`     | [**卖家信息**](/api-targets/cn/dian-zi-shang-wu/amazon/sellers.md) 关于你选择的卖家。           | 是。                                                                                                   |
| `amazon_bestsellers` | 列表 [**畅销商品**](/api-targets/cn/dian-zi-shang-wu/amazon/best-sellers.md) 在你选择的分类节点中。 | 是                                                                                                    |
| `amazon`             | 提交任意 [**亚马逊 URL**](/api-targets/cn/dian-zi-shang-wu/amazon/url.md) 都可以。            | 仅限于特定类型的 URL [**Amazon 页面类型**](/products/cn/web-scraper-api/features/localization/domain-locale.md). |

## 入门

**创建您的 API 用户凭据**：注册免费试用或在 [**Oxylabs 仪表板**](https://dashboard.oxylabs.io/en/registration) 中购买产品，以创建您的 API 用户凭据（`USERNAME` 和 `PASSWORD`).

{% hint style="warning" %}
如果您的账户需要多个 API 用户，请联系我们的 [**客户支持**](mailto:support@oxylabs.io) ，或通过我们的 24/7 在线聊天支持发送消息。
{% endhint %}

### 请求示例

{% tabs %}
{% tab title="cURL" %}

```bash
curl 'https://realtime.oxylabs.io/v1/queries' \
--user "USERNAME:PASSWORD" \
-H "Content-Type: application/json" \
-d '{
        "source": "amazon_product",
        "query": "B07FZ8S74R",
        "geo_location": "90210",
        "parse": true
    }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
from pprint import pprint

# 结构化负载。
payload = {
    'source': 'amazon_product',
    'query': 'B07FZ8S74R',
    'geo_location': '90210',
    'parse': True
}

# 获取响应。
response = requests.request(
    'POST',
    'https://realtime.oxylabs.io/v1/queries',
    auth=('USERNAME', 'PASSWORD'),
    json=payload,
)

# 将美化后的响应打印到标准输出。
pprint(response.json())
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const https = require("https");

const username = "USERNAME";
const password = "PASSWORD";
const body = {
    source: "amazon_product",
    query: "B07FZ8S74R",
    geo_location: "90210",
    parse: true,
};

const options = {
    hostname: "realtime.oxylabs.io",
    path: "/v1/queries",
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        Authorization:
            "Basic " + Buffer.from(`${username}:${password}`).toString("base64"),
    },
};

const request = https.request(options, (response) => {
    let data = "";

    response.on("data", (chunk) => {
        data += chunk;
    });

    response.on("end", () => {
        const responseData = JSON.parse(data);
        console.log(JSON.stringify(responseData, null, 2));
    });
});

request.on("error", (error) => {
    console.error("Error:", error);
});

request.write(JSON.stringify(body));
request.end();
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$params = array(
    'source' => 'amazon_product',
    'query' => 'B07FZ8S74R',
    'geo_location' => '90210',
    'parse' => true,
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");

$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
echo $result;

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
?>
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;

namespace OxyApi
{
    class Program
    {
        static async Task Main()
        {
            const string Username = "USERNAME";
            const string Password = "PASSWORD";

            var parameters = new {
                source = "amazon_product",
                query = "B07FZ8S74R",
                geo_location = "90210",
                parse = true
            };

            var client = new HttpClient();

            Uri baseUri = new Uri("https://realtime.oxylabs.io");
            client.BaseAddress = baseUri;

            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
            requestMessage.Content = JsonContent.Create(parameters);

            var authenticationString = $"{Username}:{Password}";
            var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(authenticationString));
            requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);

            var response = await client.SendAsync(requestMessage);
            var contents = await response.Content.ReadAsStringAsync();

            Console.WriteLine(contents);
        }
    }
}
```

{% endtab %}

{% tab title="Golang" %}

```go
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	const Username = "USERNAME"
	const Password = "PASSWORD"

	payload := map[string]interface{}{
		"source":       "amazon_product",
		"query":        "B07FZ8S74R",
		"geo_location": "90210",
		"parse":        true,
	}

	jsonValue, _ := json.Marshal(payload)

	client := &http.Client{}
	request, _ := http.NewRequest("POST",
		"https://realtime.oxylabs.io/v1/queries",
		bytes.NewBuffer(jsonValue),
	)

	request.SetBasicAuth(Username, Password)
	request.Header.Set("Content-Type", "application/json")
	response, _ := client.Do(request)

	responseText, _ := ioutil.ReadAll(response.Body)
	fmt.Println(string(responseText))
}
```

{% endtab %}

{% tab title="HTTP" %}

```http
https://realtime.oxylabs.io/v1/queries?source=amazon_product&query=B07FZ8S74R&geo_location=90210&parse=true&access_token=12345abcde
```

{% endtab %}

{% tab title="Java" %}

```java
package org.example;

import okhttp3.*;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;

public class Main implements Runnable {
    private static final String AUTHORIZATION_HEADER = "Authorization";
    public static final String USERNAME = "USERNAME";
    public static final String PASSWORD = "PASSWORD";

    public void run() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("source", "amazon_product");
        jsonObject.put("query", "B07FZ8S74R");
        jsonObject.put("geo_location", "90210");
        jsonObject.put("parse", true);

        Authenticator authenticator = (route, response) -> {
            String credential = Credentials.basic(USERNAME, PASSWORD);
            return response
                    .request()
                    .newBuilder()
                    .header(AUTHORIZATION_HEADER, credential)
                    .build();
        };

        var client = new OkHttpClient.Builder()
                .authenticator(authenticator)
                .readTimeout(180, TimeUnit.SECONDS)
                .build();

        var mediaType = MediaType.parse("application/json; charset=utf-8");
        var body = RequestBody.create(jsonObject.toString(), mediaType);
        var request = new Request.Builder()
                .url("https://realtime.oxylabs.io/v1/queries")
                .post(body)
                .build();

        try (var response = client.newCall(request).execute()) {
            if (response.body() != null) {
                try (var responseBody = response.body()) {
                    System.out.println(responseBody.string());
                }
            }
        } catch (Exception exception) {
            System.out.println("Error: " + exception.getMessage());
        }

        System.exit(0);
    }

    public static void main(String[] args) {
        new Thread(new Main()).start();
    }
}
```

{% endtab %}

{% tab title="JSON" %}

```json
{
    "source": "amazon_product",
    "query": "B07FZ8S74R",
    "geo_location": "90210",
    "parse": true
}
```

{% endtab %}
{% endtabs %}

<details>

<summary>输出示例</summary>

```json
{
    "results": [
        {
            "content": {
                "ads": [
                    {
                        "pos": 1,
                        "asin": "B07KRY43KN",
                        "type": "organic_also_viewed",
                        "price": 29.99,
                        "title": "Echo Glow - 多色智能灯，与 Alexa 兼容",
                        "images": [
                            "https://images-na.ssl-images-amazon.com/images/I/61kaGoho9HL._AC_UL160_SR160,160_.jpg"
                        ],
                        "rating": 4.5,
                        "location": "carousel",
                        "price_upper": 29.99,
                        "reviews_count": 48742,
                        "is_prime_eligible": false
                    },
                    {...}
                ],
                "url": "https://www.amazon.com/dp/B07FZ8S74R",
                "asin": "B07FZ8S74R",
                "page": 1,
                "brand": "亚马逊",
                "price": 0,
                "stock": "当前缺货。我们不知道此商品何时或是否会重新有货。",
                "title": "Echo Dot（第 3 代，2018 版）- 搭载 Alexa 的智能音箱 - 炭黑色",
                "coupon": "",
                "images": [
                    "https://m.media-amazon.com/images/I/61MZfowYoaL._AC_SL1000_.jpg",
                    "..."
                ],
                "rating": 4.7,
                "category": [],
                "currency": "USD",
                "delivery": [],
                "page_type": "产品",
                "price_sns": 0,
                "variation": [],
                "has_videos": false,
                "sales_rank": [],
                "top_review": "我最近把 Echo Dot（第 3 代，2018 版）加入了我的智能家居设置，对它的性能和功能非常满意。这款紧凑型智能音箱在功能性和便利性方面表现出色。设置非常顺利——几分钟内，我就让 Alexa 运行起来，准备提供帮助。语音识别准确得令人惊讶，Alexa 的回应也既迅速又有帮助。无论是查看天气、设置计时器，还是播放我最喜欢的音乐，Echo Dot 都能轻松融入我的日常。对于这样一款紧凑的设备来说，音质出乎意料地强劲。音频的清晰度和层次感令人印象深刻，非常适合流媒体音乐，甚至可作为大型音响系统的辅助音箱。我很喜欢 Echo Dot 简洁、不突兀的设计，它能无缝融入任何房间的装饰。炭黑色为其增添了一丝优雅，让它成为我生活空间中非常赏心悦目的点缀。最突出的功能之一是智能家居控制。Echo Dot 可以轻松连接各种智能设备，让我只需简单的语音指令就能控制灯光、恒温器等。它确实提升了我智能家居设置的整体便利性。总之，Echo Dot（第 3 代，2018 版）已被证明是我家中不可或缺的补充。其语音识别准确、音质出色以及与智能家居的无缝集成，使它在智能音箱市场中脱颖而出。如果你正在寻找一款可靠且功能丰富的智能音箱，Echo Dot 是一个绝佳选择——强烈推荐！\n  \n阅读更多",
                "asin_in_url": "B07FZ8S74R",
                "description": "",
                "parent_asin": "B07H65KP63",
                "price_upper": 0,
                "pricing_str": "",
                "pricing_url": "https://www.amazon.com/gp/offer-listing/B07FZ8S74R?startIndex=0",
                "manufacturer": "亚马逊",
                "price_buybox": -1,
                "product_name": "Echo Dot（第 3 代，2018 版）- 搭载 Alexa 的智能音箱 - 炭黑色",
                "bullet_points": "认识 ECHO DOT - 我们最紧凑的智能音箱，完美适合小空间。\n更饱满、更响亮的声音 - 比 Echo Dot 第 2 代有更好的音质，声音更饱满、更响亮。可与第二个 Echo Dot 配对实现立体声。\nALEXA 配合 PRIME 让你做得更多 - 使用 Amazon Music 聆听数百万首歌曲，使用你的语音进行 2 日配送，听 Audible 有声书，以及更多功能。\n让生活更轻松 - Alexa 可以设置计时器、查看天气、阅读新闻、调节恒温器、回答问题等，帮助处理日常任务。\n专为保护你的隐私而设计——内置多层隐私控制，包括删除录音、麦克风静音，以及应用内更多隐私控制。\n用简单短语控制音乐 - Echo Dot 让你可以通过 Amazon Music、Apple Music、Spotify、SiriusXM 等以及蓝牙播放歌曲。借助 Alexa 的语音控制，你可以轻松切换到下一首歌、调节音量并暂停，无需起身。\n免提与他人联系 - 可拨打使用 Alexa 应用或 Echo 设备的朋友和家人。可立即进入其他房间，或向全家宣布晚餐准备好了。\nALEXA 拥有技能 - 随着数以万计的技能并持续增加，Alexa 变得越来越智能，并在不断添加健身追踪、游戏等新技能。",
                "price_initial": 0,
                "pricing_count": 1,
                "reviews_count": 985157,
                "sns_discounts": [],
                "developer_info": [],
                "price_shipping": 0,
                "featured_merchant": [],
                "is_prime_eligible": false,
                "parse_status_code": 12005,
                "answered_questions_count": 0,
                "rating_stars_distribution": [
                    {
                        "rating": 5,
                        "percentage": 82
                    },
                    {...}
                ]
            },
            "created_at": "2024-07-01 09:05:45",
            "updated_at": "2024-07-01 09:05:55",
            "page": 1,
            "url": "https://www.amazon.com/dp/B07FZ8S74R",
            "job_id": "7213467808577910785",
            "status_code": 200,
            "parser_type": ""
        }
    ]
}
```

</details>

我们使用同步的 [**Realtime**](/products/cn/web-scraper-api/integration-methods/realtime.md) 集成方法作为示例。如果您想使用 [**Proxy Endpoint**](/products/cn/web-scraper-api/integration-methods/proxy-endpoint.md) 或异步 [**Push-Pull**](/products/cn/web-scraper-api/integration-methods/push-pull.md) 集成，请参阅 [**集成方法**](/products/cn/web-scraper-api/integration-methods.md) 部分。

或者，您可以包含其他参数，例如 `geo_location`, `user_agent_type`, `parse`, `render` 以及更多内容来自定义你的抓取请求。阅读更多：

{% content-ref url="/spaces/ZwEHB9k4MH4pDy80n9mF/pages/1c0708575f299a0b7d4cba7684877a9277872b1e" %}
[功能](/products/cn/web-scraper-api/features.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.oxylabs.io/api-targets/cn/dian-zi-shang-wu/amazon.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
