商品
获取 Best Buy 产品详情,包括价格、评分和规格。高效提取解析后或 HTML 格式的数据。
该 bestbuy_product 该 source 用于检索 Bestbuy 产品结果页面。我们可以返回任何你想要的 Best Buy 页面 HTML。此外,我们可以提供 针对 Best Buy 产品页面的结构化(解析后)输出.
请求示例
下面的示例说明了如何获取已解析的 Best Buy 产品结果。
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "bestbuy_product",
"product_id": "6586591",
"parse": true
}'import requests
from pprint import pprint
# 构建负载(payload)。
payload = {
'source': 'bestbuy_product',
'product_id': '6586591',
'parse': True
}
# 获取响应。
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('USERNAME', 'PASSWORD'),
json=payload,
)
# 与返回作业状态和结果 URL 的响应不同,此调用将直接返回
# 带结果的 JSON 响应。
pprint(response.json())const https = require("https");
const username = "USERNAME";
const password = "PASSWORD";
const body = {
source: "bestbuy_product",
query: "6586591",
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();# 您提交的整个字符串必须进行 URL 编码。
https://realtime.oxylabs.io/v1/queries?source=bestbuy_product&product_id=6586591&parse=true&access_token=12345abcde<?php
$params = array(
'source' => 'bestbuy_product',
'product_id' => '6586591',
'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": "bestbuy_product",
"product_id": "6586591",
"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 = "bestbuy_product",
product_id = "6586591",
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", "bestbuy_product");
jsonObject.put("product_id", "6586591");
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": "bestbuy_product",
"product_id": "6586591",
"parse": true
}在我们的示例中,我们使用同步的 Realtime 集成方法。如果您想使用 Proxy Endpoint 或异步的 Push-Pull 集成,请参阅 集成方法 部分。
请求参数值
通用
- 必填参数
本地化
根据特定域、商店和送货位置调整结果。
domain
Bestbuy 的域名本地化。可用值: com, ca.
com
字符串
store_id
指定一个门店。
-
整数
delivery_zip
设置送货邮编位置。
-
字符串
电商爬虫 API 可提取 Best Buy 产品结果,输出 HTML 或 JSON 格式,提供页面各元素的结构化数据。
输出示例
{
"results": [
{
"content": {
"url": "https://www.bestbuy.com/site/apple-iphone-15-plus-128gb-black-verizon/6525454.p?skuId=6525454&intl=nosplash",
"price": {
"price": 25.83,
"currency": "USD"
},
"title": "Apple - iPhone 15 Plus 128GB - Black (Verizon)",
"rating": {
"count": 55,
"score": 4.3
},
"_errors": [
"'NoneType' object has no attribute 'xpath'"
],
"product_id": "6525410",
"is_sold_out": false,
"parse_status_code": 12004,
},
"created_at": "2024-06-13 11:44:20",
"updated_at": "2024-06-13 11:44:48",
"page": 1,
"url": "https://www.bestbuy.com/site/apple-iphone-15-plus-128gb-black-verizon/6525454.p?skuId=6525454&intl=nosplash",
"job_id": "7206984735770310657",
"status_code": 200,
"parser_type": "bestbuy_product"
}
]
}输出数据字典
HTML 示例

JSON 结构
下表列出了我们解析的每个产品页面元素的详细清单、说明和数据类型。表中还包括一些元数据。
url
Best Buy 产品页面的 URL。
字符串
价格
价格对象,包含价格和货币信息。
对象
price.price
产品的价格。
float
price.currency
价格所使用的货币。
字符串
title
产品标题。
字符串
rating
评分对象,包含评分数量和评分分数。
对象
rating.count
产品收到的评分数量。
整数
rating.score
产品的评分分数。
整数
product_id
产品的唯一标识符。
字符串
is_sold_out
指示产品是否已售罄。
boolean
created_at
抓取任务创建的时间戳。
时间戳
updated_at
抓取任务完成的时间戳。
时间戳
page
结果翻页中的页码。
整数
parser_type
用于提取数据的解析器类型。
整数
job_id
与抓取任务关联的作业 ID。
字符串
最后更新于
这有帮助吗?

