Hướng Dẫn Tối Ưu Để Thu Thập Dữ Liệu Amazon Năm 2026
Tóm tắt
Các trang sản phẩm của Amazon có nhiều trường có thể thu thập hơn là chỉ giá cả — tiêu đề, giá, đánh giá sao, số lượng đánh giá, ASIN, hình ảnh, tình trạng sẵn có và người bán trong Buy Box đều có mặt trong HTML của trang, không cần đăng nhập.
robots.txt và Điều kiện sử dụng của Amazon hạn chế truy cập tự động, và công cụ lấy dữ liệu của phiên này đã bị từ chối khi cố gắng tải một URL amazon.com trực tiếp — hãy coi bất kỳ dự án thu thập dữ liệu nào cũng cần xem xét tuân thủ, không chỉ là vấn đề kỹ thuật.
API Quảng cáo sản phẩm chính thức của Amazon (PA-API 5.0) đã ngừng sử dụng. Các yêu cầu hiện trả về HTTP 403 thông báo cho người gọi chuyển sang API Creators mới, yêu cầu phải có đăng ký Amazon Associates còn hiệu lực và tối thiểu 10 giao dịch đủ tiêu chuẩn trong vòng 30 ngày qua — một rào cản mà hầu hết các nhóm không phải liên kết không thể vượt qua.
Khoảng trống này chính là lý do tại sao một API thu thập dữ liệu quản lý là con đường trung gian thực tế giữa API chính thức hiện đã bị đóng và việc xây dựng một hệ thống chống bot từ đầu — Nstproxy Crawl xử lý việc render JavaScript và định tuyến proxy, vì vậy mã trong hướng dẫn dưới đây chỉ cần xử lý việc phân tích cú pháp.
Một trang sản phẩm duy nhất và một trang kết quả tìm kiếm sử dụng các mẫu lựa chọn khác nhau. Các trang sản phẩm sử dụng ID như #productTitle; các trang kết quả tìm kiếm dựa trên thuộc tính data-asin của từng khối [data-component-type="s-search-result"].
Cùng một mã thu thập có thể trở thành trình theo dõi giá chỉ với khoảng mười dòng mã thêm — Mẹo bổ sung dưới đây biến yêu cầu một lần thành một vòng lặp đã lên lịch, và Nstproxy Proxy Manager là bước tiếp theo tự nhiên khi vòng lặp đó chạy qua hàng chục SKU hoặc thị trường cùng một lúc.
Dữ liệu bạn thực sự có thể thu thập từ Amazon
Các trang sản phẩm và kết quả tìm kiếm của Amazon tiết lộ tiêu đề sản phẩm, giá hiện tại, đánh giá sao, số lượng đánh giá, ASIN, URL hình ảnh chính, tình trạng hàng tồn kho/sẵn có, và — trên trang sản phẩm — người bán hiện đang thắng Buy Box, tất cả đều nằm trong HTML mà không cần đăng nhập. Các đánh giá của khách hàng mang theo các trường bổ sung (văn bản đánh giá, đánh giá sao, cờ "mua đã được xác thực") nhưng cũng có tên hiển thị của người đánh giá, mà được coi là dữ liệu cá nhân và cần được xử lý giảm thiểu như bất kỳ định danh cá nhân nào khác thu thập từ một trang công cộng.
Trải nghiem Nstproxy - Bat dau dung thu mien phi ngay
Các nhóm thường thu thập dữ liệu này vì một trong bốn lý do: giám sát giá cạnh tranh qua một danh mục, nghiên cứu thị trường về xếp hạng danh mục và cảm nhận đánh giá, kiểm tra tuân thủ MAP (giá tối thiểu được quảng cáo) cho các danh sách của thương hiệu riêng, và nghiên cứu tiềm năng hoặc sự đa dạng trước khi gia nhập một thị trường mới. Tất cả bốn lý do này đều là biến thể của cùng một công việc cơ bản — lấy một trang, trích xuất một tập hợp các trường ổn định, lặp lại theo lịch — đó là mẫu mà hướng dẫn này xây dựng.
Nhìn Lướt Qua
Amazon hiển thị giá cả và tình trạng sẵn có bằng JavaScript và chặn hầu hết các IP chưa quay vòng trong một vài yêu cầu — Nstproxy Crawl xử lý rendering trình duyệt và định tuyến proxy trong một cuộc gọi API, vì vậy mã dưới đây chỉ cần phân tích cú pháp trang nó nhận lại.
Tính hợp pháp phụ thuộc vào những gì được thu thập và cách thức, không phải là việc thu thập dữ liệu từ Amazon có thể hay không. robots.txt của Amazon cấm thu thập tự động hầu hết các đường dẫn — công cụ nghiên cứu của bài viết này đã bị từ chối khi cố gắng lấy một URL amazon.com trực tiếp, điều này là một minh họa hữu ích về cách mà hạn chế đó được áp dụng rộng rãi — và Điều kiện sử dụng của Amazon cấm riêng biệt các công cụ khai thác dữ liệu mà không có sự cho phép. Không một trong hai sự thật đó tự nó giải quyết câu hỏi pháp lý: trong hiQ Labs v. LinkedIn, Tòa án Ninth Circuit nhận thấy rằng việc thu thập dữ liệu hồ sơ công khai có thể không vi phạm Đạo luật Gian lận và Lạm dụng Máy tính, và trong Van Buren v. United States, Tòa án Tối cao đã thu hẹp CFAA đến quyền truy cập không được ủy quyền thay vì việc sử dụng không đúng cách dữ liệu khác đã có thể truy cập. Craigslist v. 3Taps chỉ ra hướng ngược lại: tiếp tục thu thập sau khi có thông báo chặn rõ ràng hoặc ngừng và từ chối thực sự làm tăng đáng kể rủi ro pháp lý.
Trong thực tế, thực hành có rủi ro thấp giống như việc thu thập các danh sách công khai, giá cả và tình trạng sẵn có với tỷ lệ yêu cầu hợp lý, tập trung vào dữ liệu siêu dữ liệu của thị trường hơn là thông tin cá nhân của người đánh giá, và thích sử dụng API chính thức khi một dự án đủ điều kiện. Thực hành có rủi ro cao giống như việc thu thập dữ liệu sau khi đã đăng nhập, thu thập dữ liệu cá nhân hoặc thanh toán, vượt qua CAPTCHA hoặc các khối kỹ thuật rõ ràng khác, và tiếp tục sau khi Amazon đã giảm tốc hoặc chặn nguồn. Hướng dẫn này nằm trong danh mục đầu tiên: dữ liệu danh mục công khai, không vượt qua xác thực và không hướng dẫn cách đánh bại thách thức CAPTCHA.
API chính thức vs. Trình thu thập dữ liệu tự làm vs. API thu thập dữ liệu được quản lý
Có ba con đường để đến cùng một dữ liệu sản phẩm, và sự lựa chọn chủ yếu phụ thuộc vào tính đủ điều kiện và mức độ hạ tầng chống bot mà một nhóm muốn sở hữu. API Quảng cáo Sản phẩm của Amazon (PA-API 5.0) là nguồn có rủi ro thấp nhất trong nhiều năm, nhưng Amazon đã ngưng sử dụng nó - một cuộc gọi đến điểm cuối cũ giờ trả về HTTP 403 hướng dẫn các nhà phát triển di chuyển sang API Creators mới, yêu cầu đăng ký tích cực trong chương trình Amazon Associates và ít nhất 10 đơn hàng đủ điều kiện trong 30 ngày qua. Rào cản đủ điều kiện đó loại trừ hầu hết các nhóm đang thực hiện việc giám sát giá cả, nghiên cứu thị trường hoặc tuân thủ MAP mà chưa vận hành một cửa hàng liên kết đang hoạt động. Trình thu thập dữ liệu hoàn toàn tự làm (requests hoặc Playwright cộng với BeautifulSoup) là con đường thứ hai, nhưng điều này có nghĩa là xây dựng và duy trì kết xuất JavaScript, vòng quay proxy và logic thử lại trong nhà trước khi viết một dòng mã trích xuất, và Amazon thay đổi dấu hiệu của mình đủ thường xuyên đến mức chi phí bảo trì tăng lên. Nstproxy Crawl là con đường thứ ba, và phần còn lại của hướng dẫn này xây dựng dựa trên nó.
Nstproxy Crawl là một API chuyển đổi URL thành Markdown, HTML đã được làm sạch hoặc dữ liệu trang thô thông qua một yêu cầu duy nhất, với việc kết xuất JavaScript trong một trình duyệt thực và bể proxy của Nstproxy xử lý lớp mạng bên dưới - hai phần mà một trình thu thập dữ liệu Amazon tự làm khác phải tự lắp ráp. Nó rất phù hợp với công việc này vì các trang sản phẩm và tìm kiếm của Amazon phụ thuộc vào việc kết xuất bên phía khách hàng cho giá cả và tình trạng sẵn có, và vì một trình thu thập dữ liệu truy cập Amazon từ một IP tĩnh duy nhất sẽ bị giới hạn tốc độ hoặc chặn sau một vài yêu cầu. API tính phí theo lần truy cập thành công thay vì theo lần thử, vì vậy một trang trả về 403 hoặc 404 vẫn được tính phí (yêu cầu đó đã thành công) nhưng một lần thử lại mà không bao giờ đến được Amazon sẽ không tính phí.
Kết xuất JavaScript bao gồm - các trang sản phẩm và tìm kiếm phụ thuộc vào các tập lệnh bên phía khách hàng cho giá cả và tình trạng hàng tồn kho sẽ được kết xuất đầy đủ trước khi API trả về kết quả, thay vì trả về một khung tải một nửa.
Định tuyến proxy được xử lý tự động - các yêu cầu định tuyến qua bể proxy dân cư hoặc trung tâm dữ liệu của Nstproxy mà không cần một nhà cung cấp proxy riêng hoặc kịch bản vòng quay IP để duy trì.
Đầu ra Markdown hoặc HTML - hướng dẫn dưới đây phân tích HTML trả về trực tiếp, nhưng đầu ra Markdown cũng hoạt động tốt đối với các nhóm đưa kết quả vào một tóm tắt dựa trên LLM thay vì một trình phân tích cố định.
Điều kiện tiên quyết
Trước khi viết bất kỳ mã nào, hãy lấy một khóa API từ bảng điều khiển Nstproxy và cài đặt các gói Python mà hướng dẫn này sử dụng:
pip install requests beautifulsoup4
requests gọi API Nstproxy Crawl; beautifulsoup4 phân tích HTML mà nó trả về. Không cần tài khoản Amazon, đăng nhập hoặc cài đặt trình duyệt nào từ phía bạn - Nstproxy Crawl chạy phần trình duyệt.
Bước 1: Thu thập dữ liệu từ một trang sản phẩm Amazon duy nhất
Gửi URL sản phẩm đến điểm cuối thu thập dữ liệu của Nstproxy Crawl, yêu cầu cả đầu ra markdown và html. Thêm ?async=true làm cho cuộc gọi đồng bộ - nó chờ cho trang hoàn thành việc kết xuất và trả về kết quả trực tiếp, thay vì trả lại một ID tác vụ để kiểm tra:
Kiểm tra result["success"] là rất quan trọng ở đây — một mã HTTP 200 chỉ xác nhận rằng Nstproxy Crawl đã nhận được yêu cầu, chứ không phải Amazon đã trả về một trang sản phẩm có thể sử dụng. onlyMainContent được thiết lập là False vì giá và các widget Buy Box trên một trang sản phẩm của Amazon nằm ngoài những gì mà một phương pháp tiếp cận "nội dung chính" tổng quát sẽ giữ lại.
Bước 2: Phân tích Tiêu đề, Giá, Đánh giá và ASIN
Trang sản phẩm của Amazon khóa các trường cốt lõi của nó dựa trên các ID phần tử ổn định thay vì tên lớp CSS được tạo ra, điều này khiến cho chúng có giá trị nhắm trực tiếp thay vì phải lấy văn bản hiển thị:
from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(page_html,"lxml")title_el = soup.select_one("#productTitle")title = title_el.get_text(strip=True)if title_el elseNoneprice_el = soup.select_one("#corePrice_feature_div span.a-offscreen")price = price_el.get_text(strip=True)if price_el elseNonerating_el = soup.select_one("#acrPopover")rating = rating_el.get("title","").replace(" out of 5 stars","")if rating_el elseNoneasin_match = re.search(r"/dp/([A-Z0-9]{10})", page_html)# ASIN sống trong URL chuẩn, không phải trong một phần tử riêng biệtasin = asin_match.group(1)if asin_match elseNoneproduct ={"asin": asin,"title": title,"price": price,"rating": rating}print(product)
Mỗi cuộc gọi select_one đều có một phương án dự phòng về None thay vì để một phần tử bị thiếu gây ra lỗi — Amazon chạy các bố cục trang khác nhau để kiểm tra A/B, vì vậy một bộ chọn phù hợp với hầu hết các danh sách có thể thỉnh thoảng bị bỏ lỡ. Xây dựng mỗi trường một cách phòng thủ, giống như cách mà BeautifulSoup và lxml thường được sử dụng cùng nhau để phân tích HTML, giữ cho một widget bị thiếu không làm hỏng toàn bộ công việc hàng loạt.
Bước 3: Lấy dữ liệu từ một Trang Kết quả Tìm kiếm Amazon cho Nhiều ASIN
Một trang kết quả tìm kiếm trả về nhiều sản phẩm trong một yêu cầu, điều này hiệu quả hơn so với việc lấy dữ liệu từ từng trang sản phẩm một khi mục đích là một cái nhìn tổng quát theo danh mục hơn là chi tiết sâu về một món đồ duy nhất. Yêu cầu tới Nstproxy Crawl giống như Bước 1, chỉ khác ở URL tìm kiếm:
SEARCH_URL ="https://www.amazon.com/s?k=wireless+earbuds"response = requests.post("https://api.nstproxy.com/api/v1/crawl/scrape?async=true", headers={"x-api-key": API_KEY,"Content-Type":"application/json"}, json={"url": SEARCH_URL,"formats":["html"],"timeout":30000},)search_html = response.json()["data"]["html"]soup = BeautifulSoup(search_html,"lxml")results =[]for card in soup.select('[data-component-type="s-search-result"]'): asin = card.get("data-asin") title_el = card.select_one("h2 a span") price_el = card.select_one(".a-price .a-offscreen") rating_el = card.select_one("[aria-label*='out of 5 stars']")ifnot asin:continue results.append({"asin": asin,"title": title_el.get_text(strip=True)if title_el elseNone,"price": price_el.get_text(strip=True)if price_el elseNone,"rating": rating_el.get("aria-label")if rating_el elseNone,})print(f"Đã phân tích {len(results)} kết quả")
Mỗi thẻ kết quả mang ASIN của nó trong một thuộc tính data-asin, đây là một điểm neo ổn định hơn nhiều so với bất kỳ bố cục trực quan nào — việc lọc ra các thẻ không có data-asin cũng loại bỏ một cách êm thấm các vị trí tài trợ và các widget bố cục không phải là kết quả sản phẩm thực sự.
Mẫu Đầu ra
Dù nguồn gốc là một trang sản phẩm duy nhất hay một trang kết quả tìm kiếm, chuẩn hóa về cùng một mẫu giữ cho lưu trữ và so sánh sau này đơn giản:
{"asin":"B0BSHF7WHW","title":"Tai Nghe Không Dây Ví dụ","price":"$49.99","rating":"4.3","review_count":2148,"availability":"Còn hàng","scraped_at":"2026-08-17T10:00:00Z"}
Lưu trữ scraped_at cùng với các bản ghi còn lại là điều khiến cho phần tiếp theo khả thi — mà không có dấu thời gian, không có cách nào để biết liệu giá cả đã thay đổi hay việc thu thập dữ liệu chỉ được thực hiện vào một thời điểm khác.
Mẹo Thêm: Biến Điều Này Thành Một Công Cụ Theo Dõi Giá Luôn Hoạt Động
Một lần thu thập dữ liệu trả lời "bây giờ giá này là bao nhiêu"; một vòng lặp theo lịch trả lời "điều này đã thay đổi chưa" — câu hỏi hữu ích hơn cho việc tuân thủ MAP hoặc giám sát cạnh tranh. Bọc yêu cầu của Bước 1 trong một bộ lập lịch và so sánh với giá đã lưu cuối cùng giúp đạt được điều đó với một thay đổi nhỏ:
trong khi True:
schedule.run_pending()
time.sleep(60)
Thay thế print bằng một webhook Slack hoặc cuộc gọi email và điều này trở thành một pipeline cảnh báo thực sự thay vì một bản ghi trên console. Khi vòng lặp đó chạy trên hàng chục ASIN qua nhiều thị trường hoặc miền khu vực thay vì một, nút thắt hoạt động thường chuyển từ logic phân tích sang quản lý proxy và thông tin đăng nhập — đó là thời điểm mà việc tập trung các quy tắc định tuyến, phân bổ hồ bơi theo từng dự án và giám sát thông qua Nstproxy Proxy Manager trở nên đáng giá khi thêm lên trên logic thu thập dữ liệu, thay vì tự xử lý việc phân công proxy trên mỗi tập lệnh.
Quan sát và Giới hạn
Việc thay đổi mức giá của Amazon xảy ra đủ thường xuyên để bất kỳ danh sách bộ chọn nào, bao gồm những danh sách trên, nên được coi là hiện tại-kể từ-hôm-nay thay vì vĩnh viễn — các kiểm tra None phòng thủ trên mỗi trường là điều giữ cho việc điều chỉnh bố cục không làm hỏng một công việc batch mà chỉ trả về một bản ghi không hoàn chỉnh. Giới hạn tỷ lệ là có thật ngay cả khi việc xoay vòng proxy được xử lý: khoảng cách giữa các yêu cầu và giữ cho độ đồng thời vừa phải giảm cơ hội bị kích hoạt ngưỡng phát hiện bot của Amazon, và không có lớp proxy nào khiến việc thu thập dữ liệu Amazon với độ đồng thời cao không bị giới hạn là một ý tưởng tốt. Dữ liệu đánh giá mang tên người đánh giá, đây là dữ liệu cá nhân ngay cả khi công khai — tối thiểu hóa những gì được lưu trữ và trong bao lâu nếu đánh giá là một phần của việc thu thập dữ liệu. Cuối cùng, không có mã nào ở trên hoạt động chống lại các trang yêu cầu giải quyết thử thách CAPTCHA hoặc đăng nhập; cả hai đều là tín hiệu rõ ràng để dừng lại thay vì là vấn đề để điều hướng xung quanh.
Kết luận
Việc thu thập dữ liệu sản phẩm trên Amazon ít hơn về việc tìm một lối đi khéo léo và nhiều hơn về việc chọn lớp đúng để giải quyết các vấn đề render JavaScript và uy tín IP mà một cuộc gọi requests.get() tĩnh không thể xử lý nổi. Với API Quảng Cáo Sản Phẩm chính thức của Amazon hiện nay yêu cầu đăng ký theo chương trình Cộng tác viên cộng với doanh thu bán hàng, mà hầu hết các đội sẽ không đạt được, một API thu thập có quản lý xử lý việc render và định tuyến proxy — kết hợp với các mẫu phân tích phòng thủ như trên — là giải pháp thực tiễn ở giữa giữa một API chính thức bị hạn chế quá mức và một chồng chống bot tự duy trì.
Q: Việc thu thập dữ liệu sản phẩm trên Amazon có hợp pháp không?
Việc thu thập dữ liệu danh sách công khai (giá, tiêu đề, xếp hạng) có rủi ro pháp lý thấp hơn so với việc thu thập dữ liệu sau một lần đăng nhập hoặc tiếp tục sau một chặn rõ ràng, dựa trên luật án lệ như hiQ Labs v. LinkedIn và Craigslist v. 3Taps, nhưng chính robots.txt của Amazon và Điều kiện Sử dụng hạn chế truy cập tự động — việc xem lại cả hai trước khi bắt đầu một dự án quan trọng hơn bất kỳ mẹo kỹ thuật nào.
Q: Tôi có thể sử dụng API chính thức của Amazon thay vì thu thập dữ liệu không?
API Quảng Cáo Sản Phẩm của Amazon (PA-API 5.0) đã ngừng hoạt động và hiện trả về HTTP 403 chỉ dẫn người gọi đến API Người sáng tạo, yêu cầu đăng ký Cộng tác viên Amazon đang hoạt động cộng với ít nhất 10 giao dịch đủ điều kiện trong 30 ngày qua — một rào cản loại bỏ hầu hết các đội thực hiện theo dõi giá hoặc nghiên cứu thị trường thay vì chạy một cửa hàng liên kết.
Q: Tại sao một cuộc gọi tĩnh requests.get() thất bại trên các trang sản phẩm của Amazon?
Các widget về giá và khả dụng trên các trang sản phẩm của Amazon phụ thuộc vào JavaScript phía khách hàng để hoàn tất việc render, do đó, một khách hàng HTTP đơn giản mà không có đơn vị render có khả năng JavaScript phía sau nó thường nhận được một trang không hoàn chỉnh hoặc bị chặn hoàn toàn sau một vài yêu cầu từ cùng một địa chỉ IP.
Q: Làm thế nào tôi tìm thấy ASIN của một sản phẩm mà không cần mở trang đó?
Trên một trang kết quả tìm kiếm, mỗi khối kết quả mang ASIN của nó trực tiếp trong thuộc tính data-asin ([data-component-type="s-search-result"]), điều này giúp tránh cần mở từng trang sản phẩm chỉ để thu thập định danh của nó.
Q: Tôi có cần một proxy để thu thập dữ liệu Amazon ở quy mô thực nào không?
Có, cho bất kỳ thứ gì ngoài một vài yêu cầu thủ công — Amazon giới hạn tỷ lệ và chặn dựa trên uy tín IP và mẫu yêu cầu, vì vậy một IP tĩnh đơn lẻ nhanh chóng bị giảm chất lượng, trong khi một hồ bơi dân cư hoặc trung tâm dữ liệu xoay vòng giữ cho công việc theo dõi hoạt động mà không cần tự động mở khóa liên tục.
Hỏi: Tôi nên làm gì nếu gặp CAPTCHA?
Dừng lại và rút lui thay vì cố gắng giải quyết hoặc tìm cách vượt qua nó — CAPTCHA là tín hiệu rõ ràng từ Amazon rằng mẫu yêu cầu hiện tại trông có vẻ tự động, và tiếp tục làm vậy sẽ nằm trong danh mục rủi ro cao như đã mô tả ở trên.
Hỏi: Tôi có thể thu thập đánh giá của khách hàng trên Amazon không?
Văn bản đánh giá và xếp hạng sao có thể thấy trên trang giống như giá cả và tiêu đề, nhưng các đánh giá cũng bao gồm tên hiển thị của người đánh giá, đây là dữ liệu cá nhân — việc giảm thiểu những gì được lưu trữ, trong bao lâu, và với mục đích gì là điều đáng xem xét trước khi thu thập dữ liệu đánh giá thay vì sau đó.
Các API Tin Tức là gì? Các API Tin Tức Tốt Nhất vào năm 2026
API tin tức là gì, và cái nào tốt nhất vào năm 2026? Một so sánh có thứ hạng và đã được kiểm tra bằng chứng về NewsAPI.org, GNews, NewsData.io, Mediastack, Nền tảng mở của Guardian, API NYT, GDELT và WorldNewsAPI - cộng với cách một API thu thập thông tin đa mục đích như Nstproxy Crawl lấp đầy những khoảng trống mà không cái nào trong số đó có.
Ivy Lin
Aug. 17th 2026
110M+ IP that voi ti le truy cap thanh cong 99.9%
Phan hoi trung binh ~0.5s cho tac vu dong thoi cao
Chi tu $0.1/GB
Truy cap ngay cac pool proxy residential, datacenter, IPv6 va ISP cao cap.