🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

Cách Xây Dựng Trình Thu Thập Dữ Liệu Amazon Với Trình Duyệt Scrapeless Agent: Hướng Dẫn Từng Bước Cho Năm 2026

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

27-Apr-2026

Những điểm chính:

  • Kết xuất động, không phải HTML thô. Các trang chi tiết sản phẩm của Amazon, kết quả tìm kiếm và đánh giá được làm mới trên phía khách hàng — Scrapeless Agent Browser kết xuất chúng trong một trình duyệt đám mây thực sự. Cụ thể trên Amazon, wait --load networkidle không ổn định (các luồng quảng cáo/báo động được tải lười biếng vẫn tiếp tục chạy); sử dụng wait 1500 sau đó wait '<stable-selector>' (ví dụ: #productTitle trên các PDP, [data-asin]:not([data-asin=""]) trên các trang /s).
  • Định tuyến địa lý theo phiên. --proxy-country, --proxy-state, --proxy-city, --timezone, và --languages giữ cho mọi yêu cầu nhất quán với địa phương trên các trang .com, .co.uk, .de, và .co.jp.
  • Luồng Khám Phá → Trích Xuất. Amazon thay đổi tên lớp và các điểm gắn thuộc tính qua các biến thể A/B. Đọc DOM với get html trước khi viết các bộ chọn, sau đó trích xuất với eval — không bao giờ mã hóa cứng tên lớp trong mã đã được phát hành.
  • Một phiên mới cho mỗi thao tác logic. Trên thực tế, các phiên Scrapeless giữ sạch trong 2–3 lần lấy trang đã làm mới liên tiếp. Quá mức đó, chúng bắt đầu trả về chrome://new-tab-page hoặc kết thúc một cách im lặng. Tạo một phiên mới cho mỗi trang hoặc cho một lô nhỏ thay vì sử dụng lại một phiên kéo dài để thực hiện 20+ yêu cầu.

Giới thiệu

Amazon là bề mặt dữ liệu sản phẩm lớn nhất trên web mở: nhận diện giá cả, khai thác đánh giá, giám sát xếp hạng Bán Chạy Nhất, tuân thủ MAP, và bảo vệ thương hiệu tất cả đều dựa trên cùng một trang danh sách công khai. API Quảng Cáo Sản Phẩm chính thức có chu kỳ phê duyệt hạn chế và không đưa ra nội dung đánh giá, chuỗi thời gian BSR, hoặc dữ liệu người bán đối thủ — vì vậy hầu hết các kênh dữ liệu Amazon nghiêm túc vẫn phải thu thập dữ liệu.

Một trình thu thập dữ liệu Amazon hiện đại phải xử lý nhiều thực tế đồng thời: các trang được làm mới bằng JavaScript, tên lớp thay đổi qua các biến thể A/B, cookies và trạng thái địa phương cần persist qua các yêu cầu phân trang, và lọc dựa trên uy tín IP xử lý dữ liệu trung tâm rất khắc nghiệt. Xử lý bốn mối quan tâm đó trong một khách hàng HTTP thô — hoặc một Playwright được cài đặt cục bộ — thêm hàng tuần bảo trì mà không ai muốn đảm nhận.

Hướng dẫn này đi qua một quy trình làm việc đầu tiên theo dòng lệnh dựa trên Scrapeless Agent Browser xử lý các phần thường mất hàng tuần: nhận dạng chống phát hiện, proxy dân cư, kết xuất động, và nhất quán địa phương xuyên thị trường — tất cả thông qua một CLI scrapeless-scraping-browser.


Những gì bạn có thể làm với nó

  • Giá cả cạnh tranh động. Theo dõi giá ASIN của đối thủ trong thời gian thực trên .com, đưa tín hiệu vào các quy tắc định giá lại, và giám sát các khoảng thời gian khuyến mại mà không phải chạy trình duyệt cục bộ.
  • Giám sát tuân thủ MAP. Quét các danh sách nhà bán lẻ và ưu đãi của bên thứ ba so với Giá Tối Thiểu Được Quảng Cáo mà nhà sản xuất đặt ra, đánh dấu vi phạm khi chúng xuất hiện.
  • Tín hiệu đánh giá trên PDP. Gom cụm những đánh giá hàng đầu được hiển thị trên mỗi PDP (5–10 đánh giá mỗi ASIN thông qua bước 3 trích xuất) — đủ cho việc phát hiện xu hướng và giám sát uy tín liên tục. Khai thác đánh giá toàn bộ qua /product-reviews/* yêu cầu các phiên xác thực vào năm 2026; xem bước 5.
  • Theo dõi hàng tồn kho và khả năng sẵn có. Giám sát những thiếu hụt hàng hóa, thay đổi đủ điều kiện Prime, và thay đổi thời gian giao hàng qua các ASIN để dự đoán áp lực chuỗi cung ứng.
  • Thông tin BSR và xếp hạng. Lấy Xếp Hạng Bán Chạy Nhất qua các loại danh mục và phân loại để xác định quy mô thị trường, theo dõi ra mắt, và phân tích thị phần danh mục.
  • Bảo vệ thương hiệu. Phát hiện danh sách giả mạo, những người bán bên thứ ba không được ủy quyền, và vi phạm nhãn hiệu trên các cửa hàng trực tuyến thị trường.

Tại sao chọn Scrapeless Agent Browser

Scrapeless Agent Browser là một trình duyệt đám mây tùy chỉnh, chống phát hiện được thiết kế cho các trình thu thập web và các tác nhân AI. Cụ thể cho Amazon, nó mang lại:

  • Proxy dân cư ở 195+ quốc gia (--proxy-country, --proxy-state, --proxy-city) cho việc xuất dữ liệu phù hợp với địa phương — nguyên tắc tải trọng để tránh bị Amazon chống bot ngay từ đầu.
  • Nhận diện chống phát hiện trên mỗi phiên, để các trang kết xuất giống hệt như lưu lượng truy cập tự nhiên.
  • Duy trì phiên thông qua --session-id trên các yêu cầu phân trang, để cookies, giỏ hàng, và ngữ cảnh Prime giữ nguyên từ trang này sang trang khác.
  • Kết xuất JavaScript trong trình duyệt đám mây, đảm bảo DOM đã làm mới cho các khối giá, banner khả năng sẵn có, nội dung đánh giá được tải lười biếng, và nội dung A+.
  • Căn chỉnh địa phương theo phiên--timezone--languages tự động phù hợp với địa lý proxy đã chọn.

Nhận khóa API của bạn trên gói miễn phí tại scrapeless.com. Các sản phẩm Scrapeless liên quan: Universal Scraping API, Giải pháp Proxy, và Máy chủ MCP Scrapeless cho các tích hợp Giao thức Ngữ cảnh Mô hình.
Nếu một bề mặt theo kiểu API phù hợp hơn với pipeline của bạn so với trình duyệt, hãy xem hướng dẫn Amazon Scraper APIScraping Amazon Product Data. Để có một trung tâm giải pháp đầy đủ tập trung vào Amazon, hãy xem scrapeless.com/en/solutions/amazon.


Yêu cầu tiên quyết

  • Node.js 18 trở lên.
  • Tài khoản Scrapeless và API key — đăng ký tại scrapeless.com.
  • jq (tùy chọn, để phân tích JSON trong các tập lệnh shell — một biến thể grep di động được hiển thị bên dưới).
  • Kiến thức cơ bản về terminal.

Cài đặt

Các công thức bên dưới hoạt động trên CLI scrapeless-scraping-browser. Thiết lập gồm ba bước — cả người dùng CLI và người dùng AI-agent cần thực hiện #1 và #2; người dùng AI-agent cũng thực hiện #3.

1. Cài đặt gói CLI

bash Copy
npm install -g scrapeless-scraping-browser

Điều này cung cấp nhị phân scrapeless-scraping-browser mà mọi bước trong hướng dẫn này đều gọi đến. Kỹ năng này không mang theo runtime của riêng nó — nó tải các mẫu lệnh vào AI agent của bạn, nhưng CLI cần được cài đặt trước.

2. Cấu hình API key của bạn

Lấy mã của bạn từ scrapeless.com, sau đó lưu nó ở nơi mà CLI có thể đọc được:

bash Copy
scrapeless-scraping-browser config set apiKey your_api_token_here
scrapeless-scraping-browser config get apiKey   # kiểm tra

Sử dụng AI agent? Hướng dẫn của kỹ năng rõ ràng thông báo cho agent của bạn rằng xác thực là cần thiết trước bất kỳ cuộc gọi phiên nào. Nếu API key chưa được thiết lập khi agent lần đầu tiên cố gắng sử dụng CLI, agent sẽ nhắc bạn và chạy lệnh config set apiKey … cho bạn — bạn có thể thiết lập thủ công ngay bây giờ (các lệnh ở trên) hoặc dán mã của bạn khi agent yêu cầu.

Tệp cấu hình nằm ở ~/.scrapeless/config.json với quyền truy cập bị hạn chế cho người dùng hiện tại, có ưu tiên hơn biến môi trường và có thể di chuyển giữa các agent và CI runners. Đối với các pipeline CI, ưu tiên:

bash Copy
export SCRAPELESS_API_KEY=your_api_token_here

3. Cài đặt kỹ năng Scrapeless trong AI agent của bạn

Đây là một bước riêng biệt so với bước 1 ở trên. Bước 1 đã cài đặt nhị phân CLI — runtime mà agent của bạn gọi. Kỹ năng là thứ dạy cho agent của bạn cách gọi nó một cách chính xác (các bộ chọn, thời gian chờ, mẫu thử lại, quy trình khám phá→trích xuất). Chúng là hai điều khác nhau, và bạn cần cả hai.

Kỹ năng là một thư mục chứa SKILL.md + skill.json + references/. Nguồn chính thức là repo scrapeless-ai/scrapeless-agent-browser → skills/scraping-browser-skill trên GitHub.

Để cài đặt nó trong Claude Code, Cursor, VS Code + GitHub Copilot, OpenAI Codex CLI hoặc Gemini CLI, hãy làm theo hướng dẫn cài đặt AI Agent Scrapeless — nó có các lệnh sao chép dán cho từng agent (bash và Windows PowerShell). Tải lại agent của bạn sau khi cài đặt để kỹ năng trở nên hoạt động.

Nếu không cài đặt kỹ năng, agent của bạn sẽ không biết quy trình khám phá→trích xuất, thời gian chờ theo từng động cơ, hoặc các bộ chọn mà thực sự hoạt động vào năm 2026, và bạn sẽ phải cung cấp từng chi tiết trong mỗi lời nhắc.

Những gì kỹ năng tải vào ngữ cảnh hoạt động của agent của bạn ngay từ đầu:

  • Xác thực — kiểm tra ~/.scrapeless/config.json hoặc SCRAPELESS_API_KEY và nhắc bạn thiết lập nếu thiếu (xem bước 2).
  • Quy trình khám phá → Trích xuấtmẫu kháng cự. Agent đọc DOM trực tiếp với get html "<region>" trước tiên, xác định các điểm neo ổn định (data-* attributes, aria-label, role, các id ngữ nghĩa), sau đó viết các bộ chọn eval dựa trên những gì thực sự được hiển thị — thay vì đoán tên lớp tiện ích thay đổi giữa các biến thể A/B và bị hỏng trong vài tuần.
  • Cú pháp bộ chọn — khi nào sử dụng bộ chọn CSS (#productTitle, [data-asin]) so với tham chiếu truy cập (@e1 từ snapshot -i).
  • Bẫy thời gian chờwait 1500 giữa openwait --load networkidle để tránh sự đua tranh phiên lạnh chrome://new-tab-page; wait <selector> so với một phần tử trên trang mục tiêu khi networkidle không ổn định.
  • Công nhân CLI song song — chuỗi && trong một shell đơn, tên phiên duy nhất, ≤3 công nhân đồng thời mỗi máy chủ. --session-id một mình là không đủ dưới sự tranh chấp daemon.
  • Cạm bẫy thường gặpeval trả về các giá trị định dạng JSON ("49.99" không phải 49.99), open thoát không bằng 0 sau khi điều hướng thành công, các phiên kết thúc khi kết nối đóng.
  • Tham chiếu lệnh đầy đủ — mọi cờ cho new-session, open, wait, eval, get, click, fill, snapshot, auth, profile, recording, stop, v.v.

4. Xác minh kỹ năng đã được kết nối

Trước khi thực hiện lần quét Amazon thật sự đầu tiên, hãy kiểm tra cài đặt với một lệnh an toàn cho tác nhân của bạn:

"Sử dụng kỹ năng Scrapeless, mở https://example.com và cho tôi biết tiêu đề trang."

Tác nhân của bạn nên tạo một phiên Scrapeless, điều hướng và trả lời với "Example Domain". Nếu bạn thấy hai từ đó, kỹ năng đã được tải, khóa API đã được đặt và trình duyệt đám mây có thể truy cập - bạn đã sẵn sàng để quét Amazon.

Nếu nó thất bại:

Triệu chứng Nguyên nhân có thể Cách khắc phục
"Tôi không có công cụ/kỹ năng nào để làm điều đó" Kỹ năng chưa được tải trong phiên tác nhân này Cài đặt lại qua hướng dẫn cài đặt kỹ năng và làm mới tác nhân
Xác thực thất bại / 401 Khóa API chưa được đặt Chạy lại scrapeless-scraping-browser config set apiKey <token> (Bước cài đặt 2)
lệnh không được tìm thấy Tệp nhị phân CLI thiếu trong PATH Chạy lại Bước cài đặt 1 (npm install -g scrapeless-scraping-browser)
Treo / đến trang chrome://new-tab-page/ Đợi phiên lạnh Yêu cầu tác nhân thử lại - kỹ năng biết cách chèn wait 1500 giữa openwait --load networkidle
page.goto: Timeout 25000ms vượt quá trên Amazon (nhưng example.com hoạt động) Áp lực CAPTCHA trên Proxy dân cư Scrapeless ↔ Amazon Thử lại trên một quốc gia proxy khác (--proxy-country GB/CA/DE); để sử dụng lâu dài, chuyển sang Scrapeless Amazon Scraper API

Cách bạn thực sự sử dụng điều này: hỏi tác nhân của bạn

Sau khi cài đặt, bạn quét Amazon bằng cách nói chuyện với tác nhân của bạn - không phải bằng cách sao chép-dán bash. Kỹ năng tải các bộ chọn, đợi, phân loại thử lại, và mô hình khám phá→trích xuất vào ngữ cảnh của tác nhân, vì vậy một lệnh bằng ngôn ngữ tự nhiên ngắn gọn là đủ để nhận lại JSON có cấu trúc.

Các lệnh bạn có thể sao chép và dán

Bạn nói với tác nhân của bạn Những gì bạn nhận lại
"Quét Amazon cho AirPods - top 10 với tiêu đề, giá, đánh giá, ASIN" Danh sách JSON, 10 thẻ, các trường {title, price, rating, asin, url, sponsored}
"Lấy đầy đủ thông tin sản phẩm cho ASIN B09B8V1LZ3" Đối tượng JSON: {title, price, rating, reviewCount, availability, prime, asin, topReviews[]}
"Quét tìm kiếm Amazon cho 'tai nghe không dây' trên các trang 1-5, lưu dưới dạng headphones.json" Một tệp JSON, 5 trang × ~22 thẻ tự nhiên mỗi trang, loại bỏ trùng lặp theo ASIN
"Kéo các đánh giá hàng đầu từ trang sản phẩm Echo Dot" Mảng JSON - tác giả, đánh giá, tiêu đề, ngày, nội dung, số lượng hữu ích - cho vòng lặp đánh giá trên PDP
"So sánh giá cho ASIN B09B8V1LZ3 trên amazon.comamazon.co.uk" Giá cạnh tranh; .es/.de bị chặn ẩn danh - tác nhân sẽ cho bạn biết và đề nghị đường dẫn Scraper API
"Theo dõi giá cho ASIN B09B8V1LZ3 mỗi giờ trong 6 giờ tới" Vòng lặp polling, phiên mới cho mỗi poll, kết quả được thêm vào CSV/JSON
"Tìm sản phẩm bán chạy nhất trong điện tử → top 20 với giá + đánh giá" JSON, 20 hàng từ /gp/bestsellers/electronics
"Quét danh sách này và cho tôi biết nó có đủ điều kiện Prime không: https://amazon.com/dp/B09B8V1LZ3" Đối tượng đơn có prime: true/false cộng với văn bản chứng minh hỗ trợ từ biểu ngữ
"Lấy biểu đồ đánh giá (5★/4★/3★/2★/1★ %) cho B09B8V1LZ3" Cấm truy cập vào năm 2026 - tác nhân sẽ giải thích và đề nghị đường dẫn Scraper API
"Tìm kiếm 'ghế văn phòng dưới 200', lọc quảng cáo, trả về top 10 tự nhiên" JSON chỉ tự nhiên; thẻ tài trợ bị loại bỏ thông qua [data-component-type="sp-sponsored-result"]
"Hiện tại có gì đang giảm giá trong Cửa hàng Apple trên amazon.com?" Khám phá-pass trên cửa hàng, rồi trích xuất các mặt hàng có gắn nhãn giảm giá
"Cho ASIN B09B8V1LZ3 liệt kê các tính năng theo dấu chấm và văn bản phần A+" Hai mảng: các gạch đầu dòng tính năng từ #feature-bullets và các đoạn A+

Ví dụ làm việc: lấy thẻ sản phẩm đầy đủ cho ASIN B09B8V1LZ3

Bạn gõ:

"Lấy tiêu đề, giá, đánh giá, số lượng đánh giá, và 5 đánh giá hàng đầu cho ASIN B09B8V1LZ3 trên Amazon. Trả lại JSON."

Kế hoạch của tác nhân (bằng tiếng Anh đơn giản):

  1. Tạo một phiên xử lý tại Mỹ (Amazon định địa phương theo IP).
  2. Mở https://www.amazon.com/dp/B09B8V1LZ3, wait 1500, sau đó wait '#productTitle' để né tránh cuộc đua phiên lạnh.
  3. Xác nhận các neo với get html "#centerCol" (xử lý các thay đổi giao diện thường xuyên của Amazon), sau đó eval cho #productTitle, .a-price .a-offscreen, #acrPopover[title], #acrCustomerReviewText, và [data-hook="review"] × 5.

Những gì bạn nhận lại (lược đồ là chuẩn mực - hình dạng JSON; nội dung đánh giá bên dưới là một mẫu minh họa):

json Copy
{
  "asin": "B09B8V1LZ3",
  "title": "Echo Dot (Thế hệ 5, phát hành năm 2022) | Âm thanh sống động...",
  "price": "$49.99",
  "rating": "4.7 trên 5 sao",
  "reviewCount": "191,146 đánh giá",
  "availability": "Còn hàng",
  "prime": true,
  "topReviews": [
    {
      // minh họa - các trường đánh giá thực tế được điền từ [data-hook="review"] × 5
      "author": "James M.",
      "rating": "5.0 trên 5 sao",
      "title": "Chất lượng giọng nói tuyệt vời, dễ thiết lập",
json Copy
"date": "Đã đánh giá tại Hoa Kỳ vào ngày 14 tháng 3 năm 2026",
"body": "Thời gian thiết lập mất hai phút. Nhận diện giọng nói rõ ràng hơn đáng kể..."
vi Copy
primeEligible: prime, url: location.href,
    });
  })()
'

Đối với các sơ đồ phong phú hơn (các tính năng điểm, thương hiệu, người bán, xuất xứ, bộ sưu tập ảnh, ma trận biến thể), lặp lại chu trình phát hiện → trích xuất cho mỗi khu vực. Hướng dẫn wiki ở cấp độ ASIN và hướng dẫn wiki về giá sản phẩm tài liệu bổ sung.


Bước 4 – Lấy dữ liệu tìm kiếm theo danh mục với phân trang

Amazon phân trang kết quả tìm kiếm qua &page=N. Độ sâu hữu cơ khả dụng cho một truy vấn duy nhất khoảng 20 trang (~400 mục) — một ràng buộc cấu trúc chỉ mục. Để có độ bao phủ rộng hơn, hãy chia truy vấn theo mặt (thương hiệu, phạm vi giá, danh mục con) thay vì đẩy qua giới hạn.

bash Copy
QUERY="tai nghe không dây"
for page in $(seq 1 20); do
  # Tạo một phiên mới cho mỗi trang — phiên dài hạn tái sử dụng giảm hiệu quả sau
  # ~3 yêu cầu trang đã được nạp (trả về im lặng chrome://new-tab-page hoặc
  # kết thúc hoàn toàn). Một phiên cho mỗi trang là đáng tin cậy hơn và
  # dễ dàng song song hóa.
  SID=$(scrapeless-scraping-browser new-session --name "search-p$page" --ttl 300 \
    --json | jq -r '.data.taskId')

  URL="https://www.amazon.com/s?k=$QUERY&page=$page"
  scrapeless-scraping-browser --session-id $SID open "$URL"
  # networkidle không bao giờ ổn định trên /s do luồng tải lười biếng; đợi thẻ thay vào đó
  scrapeless-scraping-browser --session-id $SID wait '[data-asin]:not([data-asin=""])'

  scrapeless-scraping-browser --session-id $SID eval "
    (() => {
      const cards = document.querySelectorAll('[data-asin]:not([data-asin=\"\"])');
      // Số lượng thẻ thay đổi (~16–60 tùy thuộc vào viewport, truy vấn và biến thể A/B);
      // phát ra một chỉ mục theo trang và để người tiêu dùng tính toán thứ hạng tuyệt đối từ đó
      // cộng với số trang thay vì gắn một hệ số cố định ở đây.
      return JSON.stringify({
        query: '$QUERY', page: $page,
        results: [...cards].map((c, i) => ({
          pageIndex: i + 1,
          asin: c.getAttribute('data-asin'),
          title: c.querySelector('h2 span')?.textContent?.trim() || null,
          price: c.querySelector('.a-price .a-offscreen')?.textContent || null,
          // Đánh giá: thử nhiều bề mặt widget sao — Amazon xoay vòng những cái này
          rating: parseFloat(
            c.querySelector('[aria-label*=\"out of 5 stars\"]')?.getAttribute('aria-label')
            || c.querySelector('i.a-icon-star span.a-icon-alt, i.a-icon-star-small span.a-icon-alt')?.textContent
            || ''
          ) || null,
          sponsored: c.querySelector('[data-component-type=\"sp-sponsored-result\"]') !== null || c.matches('[data-component-type=\"sp-sponsored-result\"]'),
          prime: !!c.querySelector('[aria-label*=\"Prime\"]'),
          url: c.querySelector('a.a-link-normal.s-underline-link-text')?.href || null,
        })),
      });
    })()
  " > "results-page-$page.json"

  scrapeless-scraping-browser stop $SID
done

Một phiên mới cho mỗi trang, không phải một phiên dài hạn. Về lý thuyết, việc tái sử dụng --session-id giữ cookies và dấu vân tay; trong thực tế, các phiên Scrapeless bắt đầu trả về trang chrome://new-tab-page trống hoặc kết thúc sau ~3 yêu cầu trang đã được nạp, vì vậy mẫu đáng tin cậy là tạo một phiên ngắn hạn cho mỗi trang và dừng nó ở cuối. Việc song song hóa qua các trang là dễ dàng — chạy thân vòng lặp trong các worker nền mà không cần phối hợp.

ASIN không độc nhất qua các trang 1–5 (ASIN tài trợ lặp lại hợp pháp — 104 duy nhất / 274 tổng quan sát); đừng giả định rằng các tập ASIN qua trang là không chồng chéo khi loại bỏ trùng lặp.

Giữ đồng thời ≤ 3 trên mỗi máy chủ. Chạy 4+ lệnh CLI đồng thời trên cùng một daemon cục bộ gây ra lỗi do trang mục tiêu bị sập và "Trang mục tiêu, ngữ cảnh hoặc trình duyệt đã bị đóng giữa eval". Để có thông lượng cao hơn, hãy phân chia qua nhiều máy chủ (hoặc nhiều tài khoản người dùng) thay vì tăng đồng thời trên một hộp duy nhất.

Đang chạy các worker song song? Daemon mặc định ~/.scrapeless-scraping-browser/ được chia sẻ giữa các tiến trình trên cùng một máy chủ — nhiều worker có thể đánh cắp phiên của nhau ngay cả khi mỗi worker truyền vào --session-id của riêng mình. Điều gì thực sự hoạt động: liên kết mọi cuộc gọi CLI cho một công việc như một lệnh shell đơn && (nguyên tử từ POV của daemon — các worker khác không thể xen giữa các bước của bạn), sử dụng tên phiên duy nhất (cổng được băm từ tên), và giới hạn đồng thời xung quanh 3 worker trên mỗi máy chủ. Việc phân vùng biến môi trường USERPROFILE/HOME được tài liệu ở kỹ năng upstream nhưng không cách ly được nhị phân Rust v0.1.1 trên Windows trong các thử nghiệm của chúng tôi — để có quy mô lớn hơn, hãy phân chia qua các máy chủ. Xem skill-dev/SKILL.md "Các đại lý CLI song song" để biết toàn bộ mẫu.

Để có các chiến lược bao phủ sâu hơn, hãy xem Cách Lấy Dữ liệu Danh mục Amazon.


Bước 5 — Một ghi chú về đánh giá và biểu đồ sao

Trong suốt năm 2025, các trang /product-reviews/<ASIN>/ có thể truy cập ẩn danh và việc thu thập dữ liệu từ toàn bộ tập đánh giá trở nên dễ dàng nhờ vào tích sản phẩm bậc sao × số trang. Năm 2026, Amazon đã thay đổi cổng truy cập: các yêu cầu ẩn danh đến URL đánh giá giờ đây chuyển hướng đến /ap/signin trong đa số các trường hợp. Xe lăn đánh giá trên PDP ([data-hook="review"] bên trong PDP chính) vẫn có thể truy cập ẩn danh — đó là 5–10 đánh giá hàng đầu được hiển thị trong việc trích xuất của Bước 3 — nhưng việc duyệt sâu theo bậc sao và biểu đồ xếp hạng sao trên trang đánh giá yêu cầu phiên đăng nhập đã xác thực.

Hai hướng đi thực tiễn tiếp theo:

  • Sử dụng các đánh giá hàng đầu trên PDP (có sẵn trong việc trích xuất Bước 3; không cần điều hướng thêm) khi 5–10 đánh giá cho mỗi ASIN là đủ — thường đúng cho việc giám sát danh tiếng và phát hiện xu hướng.
  • Đối với toàn bộ tập đánh giá, kết hợp Trình Duyệt Thu Thập Dữ Liệu với trạng thái phiên đã xác thực. auth save <name> lưu trữ thông tin đăng nhập và auth login <name> phát lại chúng, nhưng các prompt MFA vẫn xuất hiện trên mỗi lần đăng nhập mới — thực tiễn chỉ đối với tài khoản Amazon không có yêu cầu MFA. Đối với các pipeline cần toàn bộ tập đánh giá lịch sử quy mô lớn, Scrapeless Amazon Scraper API xử lý xác thực phía máy chủ, do đó người gọi không cần phải làm vậy.

Dù bằng cách nào, đừng cố gắng thu thập dữ liệu /product-reviews/* ẩn danh vào năm 2026 — mọi yêu cầu sau vài yêu cầu đầu tiên sẽ chuyển đến /ap/signin và phiên sẽ hiệu quả chết cho công việc đánh giá.


Bước 6 — Một ghi chú về ảnh chụp giữa các thị trường

ASIN là ổn định toàn cầu — giá cả, khả năng cung cấp và nhóm nhà bán hàng khác nhau giữa các thị trường .com, .co.uk, .de.co.jp — và nguyên tắc một phiên đồng bộ cho mỗi thị trường là mô hình tự nhiên. Trong thực tế, các phiên được định tuyến đến Mỹ đụng phải các thị trường không phải Mỹ thường xuyên rơi vào các trang trung gian theo địa phương (ví dụ: amazon.es/dp/<ASIN> trả về trang "Seguir comprando" tiếp tục mua sắm bằng tiếng Tây Ban Nha — ~160 byte, không có #productTitle, không có dấu hiệu thêm vào giỏ hàng — thay vì trang chi tiết sản phẩm). Các yêu cầu từ các thị trường không phải Mỹ hiện đang được phục vụ tốt nhất bởi Scrapeless Amazon Scraper API, xử lý định tuyến thị trường phía máy chủ.

Đối với thị trường Mỹ cụ thể (.com), mỗi bước trong hướng dẫn này hoạt động từ đầu đến cuối mà không cần cờ địa lý nào. Đối với các pipeline đa thị trường hôm nay, hãy sử dụng Scraper API cho các thị trường không phải Mỹ và Trình Duyệt Thu Thập Dữ Liệu cho công việc quy trình tùy chỉnh ở Mỹ.

Xem Thu thập dữ liệu Amazon với Proxy Dân cưProxy cho Thu thập dữ liệu Amazon để tìm hiểu về mô hình proxy dân cư.


Những gì bạn nhận được

Trình Duyệt Thu Thập Dữ Liệu trả về một DOM trực tiếp — sơ đồ trích xuất là bất cứ thứ gì mà người gọi viết vào bước eval. Đối với một lần qua PDP với mẫu khám phá → trích xuất từ Bước 3, các trường mà hôm nay đáng tin cậy trở lại trông như sau:

json Copy
// Sơ đồ là định chuẩn; các giá trị trường bên dưới là ví dụ minh họa
// từ một lần chụp gần đây, không phải là bản sao đóng băng của B09B8V1LZ3 hôm nay.
{
  "asin": "B09B8V1LZ3",
  "title": "Echo Dot (Thế hệ thứ 5, phát hành năm 2022) | Âm thanh sống động...",
  "brand": "Amazon",
  "final_price": "49.99",
  "availability": "Có hàng",
  "rating": 4.7,
  "review_count": 191146,
  "prime_eligible": true,
  "amazon_choice": true,
  "bought_past_month": "Hơn 10K sản phẩm được mua trong tháng qua",
  "features": [
    "HOÀN HẢO CHO MỌI PHÒNG – Âm thanh sống động...",
    "KIỂM SOÁT NHẠC BẰNG GIỌNG NÓI – Phát trực tuyến các bài hát..."
  ],
  "image_url": "https://m.media-amazon.com/images/I/...",
  "images_count": 9,
  "delivery": "Giao hàng MIỄN PHÍ cho các đơn hàng đủ điều kiện",
  "url": "https://www.amazon.com/dp/B09B8V1LZ3",
  "domain": "www.amazon.com"
}

Một số quan sát chân thành về đầu ra này, đáng biết trước khi thực hiện ở quy mô lớn:

  • Bảng thông số chi tiết là có điều kiện theo mẫu. Các trường sống bên trong #productDetails_detailBullets_sections1 / #detailBulletsWrapper_feature_divproduct_dimensions, item_weight, model_number, manufacturer, upc, date_first_available, department — thường không có trong DOM mà Amazon cung cấp. Một địa chỉ IP dân cư khác, hoặc thêm ?language=en_US&m=ATVPDKIKX0DER vào URL, đôi khi có thể hiển thị đầy đủ mẫu. Đối với các trường phải có mặt trong mỗi lần chạy, Scrapeless Amazon Scraper API giải quyết điều này phía máy chủ.
  • Xếp hạng Best Sellers (BSR) và các loại tổ tiên của nó (bs_rank, bs_category, root_bs_rank, root_bs_category, subcategory_rank) là một phần của cùng một khối thông số chi tiết. Cảnh báo tương tự.
  • number_of_sellers yêu cầu một điều hướng phụ đến /gp/offer-listing/<ASIN>/ và sau đó trích xuất số lượng hàng loạt nhà bán.
  • top_review đến từ vòng quay đánh giá PDP ([data-hook="review-body"]). Đường dẫn dự phòng đến /product-reviews/<ASIN>/ không còn hoạt động một cách ẩn danh trong năm 2026 (xem Bước 5) — hãy dựa vào vòng quay PDP để có 5–10 đánh giá hàng đầu cho mỗi ASIN.
  • parent_asin yêu cầu quét khu vực biến thể (#twister / #variation_*); chỉ có mặt trên các sản phẩm vận chuyển biến thể.

Một bức ảnh chụp trang tìm kiếm trả về một mảng kết quả có cấu trúc:

json Copy
{
  "query": "tai nghe không dây",
  "page": 1,
  "results": [
    {
      "rank": 1, "asin": "B0XXXXXXXX", "title": "...",
      "price": "$79.99", "rating": 4.5, "review_count": 12034,
      "sponsored": false, "prime": true,
      "url": "https://www.amazon.com/dp/B0XXXXXXXX"
    }
  ]
}

Cần toàn bộ 55-trường lược đồ? Sử dụng API Scrapeless Amazon Scraper

Sản phẩm đi kèm — Scrapeless Amazon Scraper API — trả về lược đồ ~55 trường đã chuẩn hóa cho bất kỳ ASIN nào: parent_asin, buybox_prices{initial, final, unit, discount}, BSR đầy đủ qua các loại danh mục tổ tiên (root_bs_rank, bs_rank, subcategory_rank), number_of_sellers, seller_id, product_details[{type, values}], top_review, answered_questions, variations, và các thông tin khác — mà không cần viết một bộ chọn hoặc điều hướng bổ sung nào.

Trình duyệt scraping Scrapeless (hướng dẫn này) API Scrapeless Amazon Scraper
Đầu ra DOM trực tiếp; bạn viết eval JSON đã chuẩn hóa, ~55 trường
Bảo trì bộ chọn Do người gọi chịu trách nhiệm Do Scrapeless chịu trách nhiệm
Tốt nhất cho Lượt xem đã đăng nhập, trường tùy chỉnh, quy trình nhiều bước, trang hạn chế theo khu vực, tự động thêm vào giỏ hàng, điều hướng theo biến thể Thông tin sản phẩm khối lượng lớn, theo dõi MAP, điều chỉnh giá, phân tích có cấu trúc
Chuẩn hóa (is_available, phân tách buybox_prices, duyệt BSR tổ tiên) Trách nhiệm của người gọi Được xử lý phía máy chủ
Lựa chọn đầu tiên tốt khi… Bạn cần chính xác tập hợp trường mà quy trình của bạn quan tâm, hoặc các luồng không phải PDP (giỏ hàng, đã lưu cho sau, danh sách mong muốn, Đăng ký & Tiết kiệm) Bạn muốn đối tượng sản phẩm Amazon chính thức với lược đồ đảm bảo

Cả hai sản phẩm đều chia sẻ cùng một tài khoản Scrapeless và cùng một hồ bơi proxy gia đình. Chọn công cụ phù hợp theo từng trường hợp sử dụng; chúng hoạt động hiệu quả khi một quy trình cần cả hai.

Để tham khảo lược đồ đầy đủ và các tải trọng mẫu, xem Scrape Amazon Product Datatrung tâm giải pháp Amazon.

Một vài quan sát chân thành về đầu ra thẻ tìm kiếm, xứng đáng để biết trước khi chạy quy mô lớn:

  • Trường currency thường có thể suy luận từ miền thị trường nhưng không phải lúc nào cũng được phát ra theo dòng bởi trang — suy ra từ bối cảnh thị trường của phiên thay vì phân tích chuỗi giá.
  • Văn bản availability được địa phương hóa; chuẩn hóa thành một enum (InStock, OutOfStock, BackOrdered, LimitedStock, Unavailable) trước khi sử dụng tiếp.
  • Các trường ratingreviewCount trên thẻ kết quả tìm kiếm đôi khi thiếu trong các danh sách hoàn toàn mới; coi chúng như có thể null.

Kết luận

Việc scraping Amazon ở quy mô lớn không chỉ đơn giản là lấy HTML — nó đòi hỏi phải có khả năng render đáng tin cậy, phiên nhận biết ngôn ngữ, và một quy trình có thể chịu đựng sự thay đổi DOM thường xuyên và áp lực chống bot. Scrapeless Scraping Browser kết hợp tất cả các yếu tố này theo cách sẵn sàng cho sản xuất, giúp dễ dàng thu thập dữ liệu sản phẩm ổn định, đánh giá và kết quả tìm kiếm mà không cần duy trì các trình duyệt cục bộ dễ bị hỏng.

Đối với các nhóm cần dữ liệu Amazon đơn giản, có cấu trúc ở quy mô lớn, Scrapeless Amazon Scraper API là sự lựa chọn tốt hơn. Đối với các quy trình yêu cầu tương tác, điều hướng tùy chỉnh, hoặc kiểm soát cấp trình duyệt, Scrapeless Scraping Browser mang lại cho bạn sự linh hoạt và khả năng phục hồi để xây dựng dựa trên các trang web thực tế. Trên thực tế, hai sản phẩm này hoạt động tốt nhất khi kết hợp: sử dụng API để trích xuất chuẩn hóa, và trình duyệt cho các quy trình phức tạp và trường hợp ngoại lệ.

Sẵn sàng để Scrape và Kiếm tiền?

Tham gia cộng đồng sôi động của chúng tôi để nhận kế hoạch miễn phí và kết nối với những người đổ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

Q1: Tại sao sử dụng Scrapeless Scraping Browser thay vì một trình scraper thông thường hoặc thiết lập Playwright cục bộ?
Các trang Amazon chủ yếu là động và thường được bảo vệ bởi các hệ thống chống bot. Scrapeless Scraping Browser cung cấp cho bạn khả năng render trình duyệt thực, proxy gia đình, bảo vệ chống fingerprinting, và kiểm soát phiên trong một nơi duy nhất, giúp việc scraping sản xuất đáng tin cậy hơn nhiều.

Q2: Tôi có cần một proxy để scraping Amazon không?
Có. Các dải IP trung tâm dữ liệu bị lọc nghiêm ngặt trên biên của Amazon, và các mẫu yêu cầu từ một IP đơn lẻ bị điều chỉnh nhanh chóng. Các proxy dân cư — được kết nối vào Scrapeless Scraping Browser qua --proxy-country, --proxy-state--proxy-city — tạo ra tỷ lệ thu thập ổn định. Xem Proxy cho việc thu thập dữ liệu AmazonThu thập dữ liệu Amazon với Proxy dân cư.

Q3: Điều này khác gì so với Amazon Scraper API?
Amazon Scraper API trả về JSON có cấu trúc cho các điểm cuối nổi tiếng (tra cứu ASIN, trang danh mục, tìm kiếm) mà không yêu cầu người gọi phải render trình duyệt — lý tưởng cho các pipeline muốn có một sơ đồ cố định và không có logic trích xuất. Scrapeless Scraping Browser là công cụ phù hợp khi trang cần render JavaScript, khi các chuỗi điều hướng có ý nghĩa (bộ lọc, danh sách thả xuống, phần có thể mở rộng), hoặc khi cần duy trì cookie/fingerprint theo phiên trên các yêu cầu phân trang.

Q4: Các thị trường nào được hỗ trợ?
Mỗi miền thị trường Amazon là một URL đơn giản — .com, .co.uk, .de, .fr, .it, .es, .co.jp, .com.au, .in, .com.mx, .com.br, và những cái khác. Căn chỉnh --proxy-country, --timezone--languages với khu vực xuất xứ của thị trường. Trong thực tế (xem Bước 6), thị trường Mỹ hoạt động hoàn toàn trên Scraping Browser; các thị trường không phải Mỹ hiện tại được phục vụ tốt nhất bởi Scrapeless Amazon Scraper API, cái này xử lý routing thị trường ở phía máy chủ.

Q5: Điều gì xảy ra khi Amazon thay đổi DOM?
Luồng khám phá → trích xuất là câu trả lời bền vững: get html khu vực liên quan trước, xác định các điểm neo ổn định (thuộc tính dữ liệu ASIN, nhãn ARIA, các bộ định vị dựa trên vai trò ngữ nghĩa), và điền eval với các bộ chọn được suy ra từ DOM hiện tại — không phải tên lớp cứng hóa. Khi trang được cấu trúc lại, bước khám phá tương tự sẽ tự động điều chỉnh.

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.

Bài viết phổ biến nhất

Danh mục