API Scraper Rufus Amazon: Cách trích xuất thông tin mua sắm hội thoại từ Amazon trên quy mô lớn
Specialist in Anti-Bot Strategies
API Ghi Nét Amazon Rufus
Amazon Rufus là trợ lý mua sắm qua cuộc trò chuyện, ngày càng thúc đẩy nghiên cứu trước khi mua trên Amazon — trả lời "Máy rửa bát này có an toàn không?", "So với mẫu M2 thì cái này thế nào?", "Giày chạy tốt nhất dưới 100€" với những câu trả lời chính xác, có hiểu biết về sản phẩm. Đối với những người điều chỉnh giá, công cụ so sánh, theo dõi thương hiệu, và các quy trình mua sắm bằng AI, những câu trả lời mà Rufus cung cấp là tín hiệu có giá trị cao.
Rufus chỉ khả dụng cho các phiên khách hàng đã đăng nhập và phát trực tiếp câu trả lời dưới dạng Sự Kiện Gửi Từ Máy Chủ. Điều này khiến nó không thể truy cập thông qua trình duyệt ẩn danh và không thực tế để tích hợp qua việc thu thập dữ liệu tự làm. API Ghi Nét Amazon Rufus Scraper giải quyết điều này từ đầu đến cuối — xác thực, mã chống bot, định tuyến thị trường, và phân tích luồng đều được xử lý ở phía máy chủ, được công khai thông qua một yêu cầu HTTP POST đơn giản. Hướng dẫn này sẽ giải thích mọi thứ: tại sao các đội ngũ sử dụng API, cách hoạt động của yêu cầu và phản hồi, tham chiếu tham số, tích hợp trong Python và Node.js, và những vấn đề phổ biến cùng giải pháp của chúng.
Phần 1: Tại sao nên sử dụng API Ghi Nét Amazon Rufus?
API Rufus biến một bề mặt Amazon đã xác thực và phát trực tiếp thành một lời gọi HTTP JSON có cấu trúc duy nhất.
- Không cần đăng nhập Amazon. Xác thực được xử lý tại Scrapeless. Người dùng không bao giờ thấy một biểu mẫu đăng nhập, một thông báo MFA, hay một hộp cookie.
- Câu trả lời được phát trực tiếp, được phân tích cho bạn. Một câu trả lời điển hình từ Rufus là 60–80 mảnh Sự Kiện Gửi Từ Máy Chủ trải dài qua bảy loại sự kiện. API kết hợp luồng thành một đối tượng
resultđã được phân tích — không cầniter_lines, không cần phát hiện biên giới\n\n, không cần phân phối loại sự kiện ở phía người gọi. - Định tuyến thị trường trong một tham số.
domain: "www.amazon.es","www.amazon.com","www.amazon.de"— API tự động định tuyến qua proxy dân cư tương ứng với khu vực. - Dữ liệu sản phẩm có cấu trúc ngay từ đầu.
result.productstrả về một danh sách các dict vớiasin,title,rating,reviews,image_url,category, và một thẻ biên tậpfooter— bộ sưu tập đã được chọn lọc cho truy vấn từ Rufus. - Khai thác câu hỏi liên quan. Mỗi câu trả lời cũng bao gồm 3–5 câu hỏi theo dõi mà Rufus tạo ra. Chúng là nguồn mở rộng truy vấn sạch cho nghiên cứu SEO, lập kế hoạch nội dung, hoặc các lời gọi Rufus nối tiếp.
- Cùng tài khoản Scrapeless, cùng bảng điều khiển. API Rufus sử dụng cùng một mã API như phần còn lại của dòng sản phẩm Scrapeless — API Scraper, Trình duyệt Thu thập Dữ liệu, API Thu thập Dữ liệu Toàn cầu. Một tài khoản, nhiều bề mặt.
Giải pháp thu thập dữ liệu Amazon Rufus tốt nhất
API Ghi Nét Amazon Rufus Scraper được xây dựng cho các quy trình sản xuất cần đầu ra đối thoại của Rufus dưới dạng dữ liệu có cấu trúc, mà không gặp gánh nặng tích hợp của việc chạy trình duyệt đã xác thực cho mỗi truy vấn.
- Xác thực phía máy chủ. Scrapeless giữ các phiên Amazon đã xác thực và quay vòng chúng. Người gọi gửi một truy vấn và nhận lại JSON đã phân tích.
- Đầu ra đã được phân tích sẵn. Câu trả lời mặc định là một phong bì JSON với một đối tượng
resultđã được điền sẵn vớiproducts,related_questions,interim_messages, và mộtrequest_context. Không cần mã glue cho việc phát trực tuyến trong trường hợp phổ biến. - Dữ liệu SSE thô tùy chọn. Cài đặt
is_sse_data: truesẽ tiết lộ luồng thôevent:<type>\ndata:<json>\n\ncho các caller cần cập nhật giao diện người dùng tiến bộ hoặc kiểm toán sự kiện toàn bộ. - Đa thị trường.
www.amazon.esđược xác minh từ đầu đến cuối; cùng một cấu trúc áp dụng cho các miền thị trường khác (.com,.co.uk,.de,.co.jp,.com.au,.in,.com.mx,.com.br).
Cách thu thập dữ liệu Amazon Rufus với API Ghi Nét Scraper
Quy trình làm việc từ đầu đến cuối diễn ra qua bốn bước: lấy mã API, xây dựng thân yêu cầu, gửi POST, phân tích phản hồi. Đăng ký tại scrapeless.com, sao chép mã API từ bảng điều khiển, và lưu nó như một biến môi trường:
bash
export SCRAPELESS_API_TOKEN=sk_your_token_here
Điểm cuối là POST https://api.scrapeless.com/api/v1/scraper/request với tiêu đề x-api-token: <YOUR_TOKEN> và một thân JSON. Phản hồi là một phong bì JSON nơi result chứa kết quả đã phân tích từ Rufus.
Cách thu thập dữ liệu Rufus theo truy vấn từ khóa
Đây là quy trình chuẩn để hỏi Rufus một câu hỏi và nhận lại những câu trả lời có cấu trúc dựa trên Amazon.
Bước 1: Xây dựng thân yêu cầu
Thân yêu cầu có ba trường bắt buộc trong input: type (luôn là "rufus"), keywords (câu hỏi hoặc ý định mua sắm), và domain (thị trường Amazon).
json
{
"actor": "scraper.amazon",
"input": {
"type": "rufus",
"keywords": "macbook air m3 có tốt cho việc chỉnh sửa video không",
"domain": "www.amazon.es"
}
}
Bước 2: Đặt tham số
keywords chấp nhận các truy vấn ngôn ngữ tự nhiên không cố định - câu hỏi trực tiếp ("Nó có chống nước không?"), so sánh ("M1 so với M3 cho video"), hoặc ý định mua sắm ("macbook tốt nhất cho sinh viên"). domain chọn thị trường Amazon; điều chỉnh nó theo địa phương mà bạn muốn Rufus định hướng câu trả lời của mình. Đối số boolean tùy chọn is_sse_data mặc định là false (bao bì JSON đã phân tích); đặt nó là true để nhận luồng SSE thô thay vào đó.
Bước 3: Gửi yêu cầu
Gửi POST nội dung đến điểm cuối với tiêu đề x-api-token. Phản hồi mặc định đến trong 5–15 giây từ đầu đến cuối dưới dạng một phản hồi HTTP phân đoạn (khoảng 130 KB cho một truy vấn điển hình). Phân tích JSON, đọc result.products và result.related_questions.
Một phản hồi thành công điển hình:
json
{
"html": "id:CHUNK_0\nevent:context\ndata:{...}\n\nid:CHUNK_1\nevent:affordance\n...",
"metadata": {
"rawUrl": "https://api.scrapeless.com/storage/scrapeless.scraper.amazon/.../<id>.html",
"type": "rufus"
},
"result": {
"request_context": { "requestId": "TMWTVKB12QFTQEV9D2GJ", "sessionId": "257-9398007-5193547", "bsr": {...} },
"user_query": "macbook air m3 có tốt cho chỉnh sửa video không",
"interim_messages": ["Đang kiểm tra...", "Đang thu thập dữ liệu…"],
"products": [ { "asin": "B08N5TLVQ2", "title": "Apple MacBook Air...", "rating": "4.8", "reviews": "2.045", ... }, ... ],
"related_questions": ["MacBook Air so với MacBook Pro khác biệt", "MacBook nào tốt hơn cho sinh viên?", ...],
"feedback_controls": { "groupId": "...", "text": "..." }
}
}
Tham số API thu thập Scrapeless Amazon Rufus
| Tham số | Bắt buộc | Loại | Mô tả |
|---|---|---|---|
actor |
có | chuỗi | Phải là "scraper.amazon" |
input.type |
có | chuỗi | Phải là "rufus" |
input.keywords |
có | chuỗi | Truy vấn tự do cho Rufus - câu hỏi, so sánh, hoặc ý định mua sắm |
input.domain |
có | chuỗi | Tên miền thị trường Amazon, ví dụ: "www.amazon.es", "www.amazon.com", "www.amazon.de" |
input.is_sse_data |
tùy chọn | boolean | Khi true, phản hồi là luồng SSE thô. Khi false (mặc định), phản hồi là bao bì JSON đã phân tích với đối tượng result đã được điền trước. |
Đối tượng result đã phân tích mà API trả về:
| Trường | Loại | Mô tả |
|---|---|---|
request_context |
đối tượng | Các định danh phía máy chủ - requestId, sessionId, bsr (gợi ý hành vi UI) |
user_query |
chuỗi | Phản hồi của keywords đầu vào - hữu ích cho việc quay vòng trong các pipeline không đồng bộ |
interim_messages |
mảng chuỗi | Thông điệp trạng thái tải được địa phương hóa cho thị trường (ví dụ: "Đang kiểm tra...", "Đang thu thập dữ liệu…" cho .es) |
products |
mảng đối tượng | Danh sách sản phẩm được Rufus chọn lọc - thường là 3–6 mục với asin, url, title, rating, reviews, category, image_url, image_alt, footer |
related_questions |
mảng chuỗi | 3–5 câu hỏi theo sau mà Rufus sinh ra - có thể sử dụng để mở rộng truy vấn hoặc các cuộc gọi liên tiếp |
feedback_controls |
đối tượng | Các chuỗi phản hồi thumbs-up/down mà Rufus hiển thị dưới câu trả lời |
Tài liệu tham khảo API đầy đủ: apidocs.scrapeless.com/api-34218448.
Cách tích hợp Scrapeless vào dự án của bạn
Việc tích hợp chỉ là một HTTP POST đơn giản. Dưới đây là các ví dụ làm việc bằng Python và Node.js - cả hai đều nhắm đến yêu cầu tiêu chuẩn (keywords="macbook air m3 có tốt cho chỉnh sửa video không", domain="www.amazon.es").
Python
python
import os
import requests
URL = "https://api.scrapeless.com/api/v1/scraper/request"
HEADERS = {
"x-api-token": os.environ["SCRAPELESS_API_TOKEN"],
"Content-Type": "application/json",
}
BODY = {
"actor": "scraper.amazon",
"input": {
"type": "rufus",
"keywords": "macbook air m3 có tốt cho chỉnh sửa video không",
"domain": "www.amazon.es",
},
}
resp = requests.post(URL, headers=HEADERS, json=BODY, timeout=60)
resp.raise_for_status()
data = resp.json()
# Đầu ra đã phân tích của Rufus
for product in data["result"]["products"]:
print(f"{product['asin']} {product['rating']}★ {product['title'][:80]}")
print("\nCác câu hỏi liên quan:")
for q in data["result"]["related_questions"]:
print(f" - {q}")
Node.js (18+)
js
const URL = "https://api.scrapeless.com/api/v1/scraper/request";
const resp = await fetch(URL, {
method: "POST",
headers: {
"x-api-token": process.env.SCRAPELESS_API_TOKEN,
"Content-Type": "application/json",
},
body: JSON.stringify({
actor: "scraper.amazon",
input: {
type: "rufus",
keywords: "macbook air m3 có tốt cho chỉnh sửa video không",
domain: "www.amazon.es",
},
}),
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}: ${await resp.text()}`);
const data = await resp.json();
for (const p of data.result.products) {
console.log(`${p.asin} ${p.rating}★ ${p.title.slice(0, 80)}`);
}
console.log("\nCác câu hỏi liên quan:");
javascript
for (const q of data.result.related_questions) {
console.log(` - ${q}`);
}
Cả hai khách hàng trả lại một đối tượng data.result đã được phân tích cú pháp giống hệt nhau — không xử lý SSE, không tái lắp ghép các khối. Đối với việc tiêu thụ SSE thô (Giao diện người dùng tiến bộ, kiểm toán sự kiện đầy đủ), đặt input.is_sse_data: true trong phần thân và đọc phản hồi như một luồng:
Python — chế độ SSE thô
python
import os, json, requests
resp = requests.post(URL, headers=HEADERS, json={
"actor": "scraper.amazon",
"input": {
"type": "rufus",
"keywords": "macbook air m3 có tốt cho chỉnh sửa video không",
"domain": "www.amazon.es",
"is_sse_data": True,
},
}, stream=True, timeout=60)
event_type, data_buf = None, []
for line in resp.iter_lines(decode_unicode=True):
if line is None:
continue
if line.startswith("event:"):
event_type = line[len("event:"):].strip()
elif line.startswith("data:"):
data_buf.append(line[len("data:"):])
elif line == "":
if event_type and data_buf:
payload = json.loads("".join(data_buf))
print(event_type, "->", str(payload)[:120])
event_type, data_buf = None, []
Node.js — chế độ SSE thô
js
const resp = await fetch(URL, {
method: "POST",
headers: { "x-api-token": process.env.SCRAPELESS_API_TOKEN, "Content-Type": "application/json" },
body: JSON.stringify({
actor: "scraper.amazon",
input: {
type: "rufus", keywords: "macbook air m3 có tốt cho chỉnh sửa video không",
domain: "www.amazon.es", is_sse_data: true,
},
}),
});
const reader = resp.body.getReader();
const decoder = new TextDecoder("utf-8");
let buf = "";
while (true) {
const { value, done } = await reader.read();
if (done) break;
buf += decoder.decode(value, { stream: true });
const frames = buf.split("\n\n");
buf = frames.pop();
for (const frame of frames) {
const lines = frame.split("\n");
const evtLine = lines.find(l => l.startsWith("event:"));
const dataLine = lines.find(l => l.startsWith("data:"));
if (evtLine && dataLine) {
const event = evtLine.slice("event:".length).trim();
const data = JSON.parse(dataLine.slice("data:".length));
console.log(event, "->", JSON.stringify(data).slice(0, 120));
}
}
}
Trong chế độ thô, hãy kỳ vọng từ 60–80 khung trên bảy loại sự kiện: context, affordance, interim, inference, feedback, remove, close. Sự kiện inference mang câu trả lời tổng hợp; close báo hiệu kết thúc luồng.
Cách tránh các vấn đề phổ biến gặp phải trong việc thu thập dữ liệu
Phản hồi lỗi bạn có thể thấy
API trả về JSON có cấu trúc cho mọi trường hợp lỗi — code là mã lỗi Scrapeless, message là giải thích dễ hiểu. Các phản hồi thực tế thu được từ các yêu cầu cố tình không hợp lệ:
| Kịch bản | HTTP | Nội dung phản hồi |
|---|---|---|
| Mã thông báo API không hợp lệ | 401 |
{"code":14404,"message":"mã truy cập không hợp lệ"} |
| Tên tác nhân sai | 400 |
{"code":14002,"message":"tác nhân không hợp lệ: <tên>"} |
Thiếu hoặc sai tên trường (ví dụ page thay vì type) |
400 |
{"code":20404,"message":"lỗi giải mã đầu vào"} |
Thiếu hoặc không hợp lệ domain |
400 |
{"code":20500,"message":"Loại: lỗi scraper rufus: lỗi rpc: mã = Code(20500) mô tả = Lỗi khi scraping Rufus, nếu lỗi này tiếp diễn, hãy thay đổi khu vực"} |
Lỗi tạm thời từ phía trên (EOF không mong đợi từ Amazon) |
400 |
{"code":20500,"message":"Loại: lỗi scraper rufus: [Amazon] yêu cầu rufusStreaming <url> thất bại :trạng thái=599,msg=EOF không mong đợi"} |
keywords trống hoặc thiếu |
200 |
Bao bì thành công, nhưng luồng SSE chứa một khối event:softlanding_error và result.products là trống. Kiểm tra result.products.length === 0 và/hoặc quét html cho softlanding_error. |
Các mã trong khoảng 144xx là lỗi xác thực và xác minh tác nhân; 204xx là lỗi hình thức yêu cầu (trường đầu vào); 205xx là lỗi từ phía Amazon. Xử lý 205xx với EOF không mong đợi hoặc thay đổi khu vực là tạm thời — thử lại với một khoảng thời gian nghỉ ngắn.
Kết luận
Amazon Rufus đang trở thành một bề mặt chính cho việc khám phá sản phẩm, so sánh, và nghiên cứu trước khi mua hàng. Đối với các nhóm phụ thuộc vào dữ liệu ý định mua sắm, nó cung cấp các tín hiệu giá trị như các đề xuất sản phẩm, bối cảnh so sánh, và các câu hỏi theo sau có thể phục vụ cho SEO, định giá, và quy trình mua sắm AI.
API Scraper Scrapeless Amazon Rufus loại bỏ những phần khó khăn nhất khi làm việc với Rufus. Thay vì quản lý phiên đăng nhập Amazon, phân tích cú pháp SSE, thách thức chống bot, và định tuyến thị trường một cách riêng lẻ, bạn chỉ cần gửi một yêu cầu và nhận lại đầu ra có cấu trúc. Điều đó khiến nó trở thành một lựa chọn thực tiễn cho các quy trình sản xuất cần truy cập đáng tin cậy và có thể mở rộng vào thông tin mua sắm do Rufus tạo ra.
Nhận gói miễn phí của bạn và bắt đầu thu thập dữ liệu:
Tham gia cộng đồng năng động của Scrapeless để nhận kế hoạch miễn phí trị giá $5-10 và kết nối với các nhà đổi mới khác:
Cộng đồng Discord chính thức của Scrapeless
Cộng đồng Telegram chính thức của Scrapeless
Câu hỏi thường gặp về API Amazon Rufus Scraper
H: Tôi có cần tài khoản Amazon hoặc MFA không?
Không. Việc xác thực được xử lý ở phía máy chủ bởi Scrapeless. Mã của bên gọi chỉ thấy result.products và result.related_questions — không bao giờ thấy biểu mẫu đăng nhập Amazon, thử thách MFA, hoặc hộp cookie.
H: Amazon Rufus được sử dụng để làm gì?
Amazon Rufus là trợ lý mua sắm đối thoại của Amazon. Người mua sử dụng nó để hỏi các câu hỏi về sản phẩm, so sánh lựa chọn và nhận đề xuất dựa trên trường hợp sử dụng, ngân sách và thuộc tính sản phẩm.
H: Tại sao Amazon Rufus lại quan trọng cho SEO và nghiên cứu sản phẩm?
Rufus tiết lộ các câu hỏi mua sắm thực sự và ý định theo dõi phản ánh cách người dùng suy nghĩ trước khi mua. Những câu hỏi đó hữu ích cho việc mở rộng từ khóa, lập kế hoạch nội dung, định vị sản phẩm và hiểu điều gì mà người mua quan tâm nhất.
H: Dữ liệu Amazon Rufus có thể được lấy trực tiếp từ Amazon không?
Không đáng tin cậy thông qua trình duyệt ẩn danh. Rufus gắn liền với phiên khách hàng đã đăng nhập và phát trực tiếp phản hồi của nó, điều này làm cho việc lấy dữ liệu thủ công trở nên mong manh và khó mở rộng. Scrapeless xử lý sự phức tạp đó ở phía máy chủ.
H: Điều gì làm cho Scrapeless tốt hơn là xây dựng một trình thu thập dữ liệu Rufus tùy chỉnh?
Scrapeless xử lý xác thực, mã chống bot, phân tích luồng và định tuyến thị trường cho bạn. Điều đó giảm thiểu gánh nặng bảo trì và làm cho API dễ sử dụng hơn trong sản xuất so với một trình duyệt DIY hoặc đường ống SSE.
H: API Rufus hỗ trợ những thị trường nào?
API được thiết kế cho các miền thị trường Amazon như www.amazon.com, www.amazon.es và www.amazon.de. Điều đó làm cho nó phù hợp cho các quy trình công việc đa thị trường khi cần phải định vị các câu trả lời của Rufus theo khu vực. Hiện tại, các miền châu Âu và Hoa Kỳ được hỗ trợ, và Scrapeless đang liên tục mở rộng các miền được hỗ trợ!
H: Loại dữ liệu nào mà API Rufus trả về?
Nó thường trả về một đối tượng JSON có cấu trúc chứa các đề xuất sản phẩm, câu hỏi liên quan và ngữ cảnh yêu cầu. Tùy thuộc vào truy vấn, bạn cũng có thể sử dụng đầu ra luồng thô nếu bạn cần dữ liệu cấp sự kiện đầy đủ.
H: Cách các thương hiệu có thể sử dụng dữ liệu Rufus?
Các thương hiệu có thể sử dụng dữ liệu Rufus cho nghiên cứu đối thủ, phân tích so sánh sản phẩm, chiến lược nội dung, khai thác ý định mua sắm, và tiếp thị hỗ trợ AI. Nó đặc biệt hữu ích khi bạn muốn hiểu những thuộc tính sản phẩm nào mà Rufus nêu bật thường xuyên nhất.
H: API Rufus có hữu ích cho các tác nhân AI và tự động hóa không?
Có. Bởi vì nó trả về dữ liệu có cấu trúc thay vì một phiên trình duyệt, nó phù hợp với các tác nhân AI, quy trình làm giàu, hệ thống đề xuất và các quy trình tự động hóa khác.
Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.



