畅销商品
使用 Oxylabs 网页爬虫 API 探索 Amazon 畅销商品数据。收集排名靠前的商品详情、类别和价格,支持自定义参数。
该 amazon_bestsellers 此数据源用于检索 Amazon 畅销商品页面。要查看包含检索数据的响应示例,请下载此 示例输出 HTML 格式的文件或查看结构化数据输出 此处.
请求示例
在下面的代码示例中,我们发出请求以检索 2类别的第 nd 页畅销榜,其 ID 为 172541,在 amazon.com 市场。
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "amazon_bestsellers",
"domain": "com",
"query": "172541",
"render": "html",
"start_page": 2,
"parse": true
}'import requests
from pprint import pprint
# 构建负载(payload)。
payload = {
'source': 'amazon_bestsellers',
'domain': 'com',
'query': '172541',
'render': 'html',
'start_page': 2,
'parse': True,
}
# 获取响应。
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('USERNAME', 'PASSWORD'),
json=payload,
)
# 将美化后的响应打印到标准输出。
pprint(response.json())const https = require("https");
const username = "USERNAME";
const password = "PASSWORD";
const body = {
source: "amazon_bestsellers",
domain: "com",
query: "172541",
render: "html",
start_page: 2,
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();https://realtime.oxylabs.io/v1/queries?source=amazon_bestsellers&domain=com&query=172541&render=html&start_page=2&parse=true&access_token=12345abcde<?php
$params = array(
'source' => 'amazon_bestsellers',
'domain' => 'com',
'query' => '172541',
'render' => 'html',
'start_page' => 2,
'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);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_bestsellers",
"domain": "com",
"query": "172541",
"render": "html",
"start_page": 2,
"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)
response, _ := client.Do(request)
responseText, _ := ioutil.ReadAll(response.Body)
fmt.Println(string(responseText))
}
using System;
using System.Collections.Generic;
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_bestsellers",
domain = "com",
query = "172541",
render = "html",
start_page = 2,
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.ASCIIEncoding.UTF8.GetBytes(authenticationString));
requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);
var response = await client.SendAsync(requestMessage);
var contents = await response.Content.ReadAsStringAsync();
Console.WriteLine(contents);
}
}
}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_bestsellers");
jsonObject.put("domain", "com");
jsonObject.put("query", "172541");
jsonObject.put("render", "html");
jsonObject.put("start_page", 2);
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();
}
}{
"source": "amazon_bestsellers",
"domain": "com",
"query": "172541",
"render": "html",
"start_page": 2,
"parse": true
}在我们的示例中,我们使用同步的 Realtime 集成方法。如果您想使用 Proxy Endpoint 或异步的 Push-Pull 集成,请参阅 集成方法 部分。
请求参数值
通用
用于抓取 Amazon 畅销商品页面的基本设置和自定义选项。
- 必填参数
本地化
将结果适配到特定地理位置、域名、语言。
重要说明: 在大多数页面类型上,Amazon 会根据客户的收货地址定制返回结果。因此,我们建议使用 geo_location 参数来设置您偏好的收货位置。您可以阅读更多关于在 Amazon 上使用 geo_location 的内容 此处.
分页
用于管理分页和检索搜索结果的控制项。
start_page
起始页码。
1
pages
要检索的页数。
1
其他
用于专门需求的附加高级设置和控制。
代码示例
{
"source": "amazon_bestsellers",
"domain": "com",
"query": "172541",
"parse": true,
"context": [
{
"key": "currency",
"value": "AUD"
}
]
}结构化数据
下面您可以找到一个 结构化输出示例 用于 amazon_bestsellers.
数据字典
HTML 示例

JSON 结构
该 amazon_bestsellers 提供有关 Amazon 畅销产品的全面数据。下表列出了我们解析的每个字段的详细清单,以及其说明和数据类型。该表还包括一些元数据。
url
Amazon 畅销商品页面的 URL。
字符串
page
当前页码。
整数
pages
页面总数。
整数
query
原始搜索词。
字符串
results
包含搜索结果的字典。
对象
results.pos
表示畅销商品位置的指标。
整数
results.url
畅销商品的 URL。
字符串
results.asin
Amazon 标准识别号。
字符串
results.price
产品的价格。
字符串
results.title
产品标题。
字符串
results.rating
产品的评分。
float
results.currency
价格所使用的货币。
字符串
results.is_prime
指示该产品是否有资格参与 Amazon Prime。
boolean
results.price_str
折扣或促销前的原始价格。
float
results.price_upper
如果适用,价格的上限。
float
results_ratings_count
产品获得的评价总数。
整数
created_at
抓取任务创建的时间戳。
时间戳
updated_at
抓取任务完成的时间戳。
时间戳
job_id
与抓取任务关联的作业 ID。
字符串
parser_type
用于解析数据的解析器类型。
字符串
最后更新于
这有帮助吗?

