Amazon Scraper: Cách thu thập dữ liệu sản phẩm, ASIN và đánh giá

Dữ liệu xuất sản phẩm Amazon của bạn trông sẵn sàng để phân tích cho đến khi bạn kiểm tra vài hàng. Hai mức giá thuộc về các kích cỡ khác nhau, ước tính giao hàng phản ánh các mã ZIP khác nhau, và các đánh giá thu thập được chỉ bao gồm một phần phản hồi mà bạn mong đợi. Những khoảng trống này có thể làm méo mó so sánh giá hoặc đưa nghiên cứu sản phẩm đi sai hướng.
Amazon scraper giúp bạn thu thập dữ liệu, nhưng kết quả hữu ích phụ thuộc vào cách bạn cấu hình công việc và xác minh đầu ra. Hướng dẫn này sẽ đưa bạn qua việc lựa chọn giữa Python, web scraping API và các công cụ no-code, sau đó thu thập chi tiết sản phẩm, ASIN và đánh giá với các cài đặt nhất quán. Bạn cũng sẽ học cách kiểm tra độ chính xác vị trí, xử lý các trường thiếu và xây dựng quy trình có thể lặp lại trước khi mở rộng quy mô.
TÓM TẮT
Chọn phương pháp của bạn: Xây dựng Amazon scraper với Python khi bạn cần logic tùy chỉnh và có thể duy trì mã. Chọn API được quản lý để giảm công việc trích xuất, hoặc công cụ no-code để xuất nhanh với thiết lập tối thiểu.
Sử dụng proxy khi quy trình cần: Proxy cung cấp định tuyến mạng và kiểm soát IP cho các script tùy chỉnh. Khớp chế độ luân chuyển hoặc sticky session với nhiệm vụ, sau đó xác minh cài đặt giao hàng của Amazon và dữ liệu đã trích xuất.
Giữ các so sánh nhất quán: Lưu ASIN, biến thể đã chọn, người bán, giá, đơn vị tiền tệ, marketplace, mã ZIP giao hàng, URL nguồn và thời điểm thu thập.
Kiểm tra phạm vi đánh giá riêng biệt: Bộ lọc, phân trang và giới hạn truy cập có thể hạn chế mẫu của bạn. Ghi lại những gì bạn đã thu thập thay vì giả định rằng dữ liệu xuất chứa mọi đánh giá.
Amazon scraper là gì và nó có thể thu thập dữ liệu gì?
Amazon scraper là công cụ trích xuất thông tin từ các trang Amazon và tổ chức nó thành các bản ghi có cấu trúc, chẳng hạn như tệp CSV, bảng tính hoặc đầu ra JSON. Thay vì sao chép thủ công chi tiết sản phẩm, bạn cung cấp URL, từ khóa tìm kiếm hoặc ASIN, tùy thuộc vào công cụ, và chỉ định thông tin bạn cần.
Các trường phổ biến bao gồm tiêu đề sản phẩm, ASIN, thương hiệu, giá, đơn vị tiền tệ, biến thể đã chọn, tên người bán, tình trạng còn hàng, xếp hạng và số lượng đánh giá. Một số công cụ cũng thu thập danh sách tìm kiếm và đánh giá của khách hàng riêng lẻ, mặc dù phạm vi phụ thuộc vào công cụ và những gì nó có thể truy cập.
Doanh nghiệp sử dụng dữ liệu này để theo dõi giá, so sánh sản phẩm cạnh tranh, theo dõi thay đổi danh mục sản phẩm và phân tích phản hồi của khách hàng. Để scraping dữ liệu sản phẩm Amazon hỗ trợ so sánh đáng tin cậy, mỗi bản ghi cần ngữ cảnh: biến thể và người bán nào mà nó đại diện, vị trí giao hàng được áp dụng và khi nào thông tin được thu thập.
Chi tiết sản phẩm, giá, người bán và tình trạng còn hàng
Chọn các trường cho phép bạn xác định chính xác sản phẩm và hiểu ưu đãi gắn liền với nó. Chỉ có giá thôi thì cho bạn biết rất ít nếu bạn không thể xác nhận kích cỡ, người bán hoặc đơn vị tiền tệ.
Trường | Nội dung cần thu thập |
Tiêu đề và thương hiệu | Tên sản phẩm và thương hiệu hiển thị để nhận dạng và phân nhóm. |
ASIN | Mã định danh Amazon liên kết với sản phẩm đang được thu thập. |
Biến thể đã chọn | Kích cỡ, màu sắc, dung lượng, số lượng trong gói hoặc các tùy chọn đã chọn khác. |
Giá và đơn vị tiền tệ | Giá ưu đãi hiển thị và đơn vị tiền tệ của nó, với phiếu giảm giá hoặc chiết khấu có điều kiện được ghi lại riêng. |
Người bán | Người bán gắn với ưu đãi; giữ thông tin thực hiện đơn hàng riêng biệt khi có sẵn. |
Tình trạng còn hàng | Trạng thái hiển thị, chẳng hạn như còn hàng, tạm thời hết hàng hoặc có sẵn để đặt trước. |
Ước tính giao hàng | Ngày giao hàng hoặc khoảng thời gian hiển thị cho điểm đến đã chọn. |
URL nguồn | Địa chỉ trang để bạn có thể truy vết và xác minh bản ghi. |
Mẹo: Lưu timestamp thu thập và mã ZIP giao hàng cùng với các trường này để các so sánh sau này giữ nguyên ngữ cảnh ban đầu.
Kết quả tìm kiếm, đánh giá và nhận xét của khách hàng
Amazon scraper có thể thu thập nhiều loại dữ liệu, nhưng mỗi loại trả lời một câu hỏi khác nhau. Kết quả tìm kiếm cho thấy những listing nào xuất hiện cho một truy vấn, trong khi trang sản phẩm mô tả một sản phẩm đã chọn và ưu đãi hiển thị của nó. Đánh giá tổng hợp tóm tắt điểm số của khách hàng; các bản ghi nhận xét riêng lẻ cung cấp phản hồi bằng văn bản đằng sau một số điểm số đó.
Loại dữ liệu | Trường hữu ích | Ứng dụng kinh doanh | Hạn chế cần kiểm tra |
Kết quả tìm kiếm | Truy vấn, ASIN, tiêu đề, vị trí, giá hiển thị, nhãn được tài trợ | Theo dõi khả năng hiển thị sản phẩm và khám phá các listing cạnh tranh | Vị trí phụ thuộc vào truy vấn và ngữ cảnh thu thập; tách các vị trí được tài trợ khỏi kết quả tự nhiên. |
Trang sản phẩm | ASIN, biến thể, giá, người bán, tình trạng còn hàng | So sánh ưu đãi và theo dõi thay đổi sản phẩm | Xác nhận biến thể đã chọn, người bán và địa điểm giao hàng trước khi so sánh các bản ghi. |
Đánh giá tổng hợp | Đánh giá sao trung bình, tổng số lượt đánh giá, phân bố sao nếu có | Theo dõi tâm lý chung của khách hàng | Số lượng đánh giá không bằng số lượng nhận xét bằng văn bản có sẵn để thu thập. |
Nhận xét riêng lẻ | ID nhận xét, số sao, tiêu đề, nội dung, ngày, chỉ báo xác minh mua hàng | Xác định khiếu nại lặp lại và điểm mạnh của sản phẩm | Bộ lọc, sắp xếp và giới hạn truy cập có thể tạo ra mẫu không đầy đủ hoặc bị lệch. |
Khi scrape dữ liệu sản phẩm Amazon, hãy giữ các tập dữ liệu này được kết nối thông qua các định danh như ASIN trong khi vẫn bảo toàn ý nghĩa riêng biệt của chúng.
Cấu hình truy cập proxy cho Amazon scraper của bạn với CyberYozh App
CyberYozh App cung cấp cơ sở hạ tầng proxy để kiểm soát kết nối mạng mà Amazon scraper của bạn sử dụng. Khớp loại proxy và hành vi phiên với quy trình thu thập của bạn, sau đó đánh giá hiệu suất bằng các bản ghi được trích xuất chính xác thay vì chỉ dựa vào sự thành công của kết nối.
Chọn rotating residential hoặc sticky session cho tác vụ
Kết nối rotating residential phù hợp với các công việc thu thập độc lập không cần giữ nguyên địa chỉ mạng giữa các tác vụ. Đối với các yêu cầu liên quan, chẳng hạn như thiết lập địa điểm giao hàng và mở nhiều trang sản phẩm, hãy sử dụng sticky session để duy trì IP trong khi ứng dụng của bạn bảo toàn cookie và trạng thái trình duyệt.
Rotating residential proxy của CyberYozh hỗ trợ rotating và sticky session, quyền truy cập API đầy đủ và chuyển lưu lượng hàng tháng. Hình thức thanh toán theo mức sử dụng với chuyển lưu lượng phù hợp với nghiên cứu định kỳ có khối lượng thay đổi giữa các giai đoạn yên tĩnh và các đợt thu thập lớn hơn, vì lưu lượng chưa sử dụng sẽ được chuyển sang tháng thanh toán tiếp theo.
Đánh giá các tùy chọn mobile, static ISP và datacenter
So sánh các tùy chọn này bằng cách sử dụng cùng mẫu sản phẩm, yêu cầu vị trí và tiêu chí chấp nhận.
Loại proxy | Phù hợp với trường hợp nào | Cần đánh giá gì |
Thu thập định kỳ khi cần truy cập mạng nhà mạng và kiểm soát thay đổi IP | Vị trí khả dụng, hành vi xoay vòng, thông lượng và kết quả khả dụng dưới khối lượng công việc của bạn | |
Công việc có lợi từ việc giữ một IP chuyên dụng qua nhiều phiên lặp lại | Tính liên tục của phiên, sự phù hợp về vị trí và hiệu suất theo thời gian | |
Khối lượng công việc mà tốc độ kết nối và chi phí cơ sở hạ tầng là ưu tiên | Liệu các trang mục tiêu của bạn có trả về dữ liệu đầy đủ, khả dụng với chi phí chấp nhận được hay không |
Mẹo: CyberYozh App liệt kê lưu lượng không giới hạn trên các gói mobile, static ISP và datacenter. Điều này có thể giúp chi tiêu băng thông dự đoán được hơn cho việc thu thập thường xuyên, trong khi các gói rotating residential vẫn tính theo lưu lượng vì lưu lượng chưa sử dụng tự động chuyển sang tháng thanh toán tiếp theo. Kiểm tra vị trí, tốc độ và điều kiện kết nối của gói đã chọn trước khi đặt hàng.
Kết nối, xác minh và giám sát quy trình
Kết nối proxy thông qua Python HTTP client của bạn hoặc cài đặt proxy được hỗ trợ bởi các công cụ tự động hóa như Scrapy, Playwright, Puppeteer, Selenium hoặc framework tương thích khác. CyberYozh cung cấp quyền truy cập API đầy đủ và hỗ trợ tích hợp, trong khi cấu hình chính xác phụ thuộc vào công cụ và giao thức proxy được chọn.
Thực hiện theo trình tự thiết lập này:
Lấy thông tin chi tiết kết nối. Sao chép host, port, giao thức và thông tin xác thực từ cấu hình proxy của bạn. Giữ thông tin đăng nhập trong biến môi trường hoặc trình quản lý bí mật.
Cấu hình hành vi phiên. Chọn xoay vòng cho các công việc độc lập hoặc phiên cố định cho các yêu cầu liên quan. Bảo toàn cookie riêng biệt trong ứng dụng của bạn.
Xác minh kết nối đầu ra. Xác nhận rằng các yêu cầu sử dụng proxy và khu vực quan sát được của nó khớp với lựa chọn của bạn.
Xác minh ngữ cảnh giao hàng của Amazon. Áp dụng và kiểm tra điểm đến trên trang sản phẩm độc lập với vị trí của proxy.
Chạy một công việc thu thập nhỏ. Giám sát các bản ghi khả dụng, thời gian phản hồi, trường bị thiếu, mức tiêu thụ lưu lượng và các lỗi lặp lại trước khi tăng khối lượng.
Tính năng kiểm tra danh tiếng IP của CyberYozh có thể cung cấp thêm ngữ cảnh khi điều tra các vấn đề kết nối.
Chọn Amazon scraper của bạn: Python, API hay công cụ no-code
Chọn Amazon scraper của bạn dựa trên tần suất bạn cần dữ liệu, mức độ kiểm soát mà công việc yêu cầu và ai sẽ bảo trì nó. Một so sánh sản phẩm một lần có yêu cầu khác với công việc thu thập hàng ngày cung cấp cho bảng điều khiển nội bộ.
Python phù hợp với các quy trình cần quy tắc trích xuất tùy chỉnh, xác thực hoặc lưu trữ. Bạn kiểm soát code, nhưng nhóm của bạn cũng xử lý lỗi phân tích cú pháp, thay đổi trang và bảo trì liên tục.
API được quản lý phù hợp cho việc thu thập định kỳ khi bạn muốn nhà cung cấp xử lý phần lớn công việc trích xuất. Trước khi cam kết, hãy kiểm tra xem API có trả về các trường bạn yêu cầu, hỗ trợ các vị trí mục tiêu của bạn và tính phí theo yêu cầu hay theo kết quả khả dụng hay không.
web scraper không cần code hoạt động tốt cho nghiên cứu nhanh và xuất dữ liệu đơn giản. Kiểm tra giới hạn batch, tùy chọn lập lịch và các điều khiển tùy chỉnh nếu bạn dự kiến khối lượng công việc sẽ tăng lên.
Python cho thu thập và xác thực tùy chỉnh
Python cho bạn quyền kiểm soát những gì Amazon scraper của bạn thu thập và điều gì xảy ra với mỗi bản ghi sau đó. Bạn có thể chọn các trường mà nghiên cứu của bạn cần, lập lịch thu thập theo thời hạn báo cáo và lưu kết quả trực tiếp vào file CSV, cơ sở dữ liệu hoặc hệ thống nội bộ. Các quy tắc xác thực tùy chỉnh có thể đánh dấu tiền tệ bị thiếu, ASIN không mong đợi hoặc biến thể đã thay đổi trước khi bản ghi đến phân tích của bạn.
Bạn cũng kiểm soát cách scraper xử lý lỗi. Ví dụ, bạn có thể thử lại lỗi kết nối tạm thời trong giới hạn xác định, ghi lại sản phẩm không khả dụng riêng biệt và tạm dừng công việc khi các phản hồi lặp lại chứa nội dung không mong đợi.
API Amazon scraper cho trích xuất được quản lý
API Amazon scraper cho phép ứng dụng của bạn yêu cầu dữ liệu mà không cần duy trì mọi phần của quy trình thu thập. Tùy thuộc vào dịch vụ, nhà cung cấp xử lý việc truy xuất trang, cơ sở hạ tầng proxy, thử lại, render và phân tích cú pháp, sau đó trả về kết quả có cấu trúc. Kiểm tra những gì được bao gồm: một số endpoint trả về nội dung trang thô vẫn cần trích xuất.
Trách nhiệm của bạn là xác nhận rằng đầu ra khớp với công việc. Kiểm tra các trường sản phẩm bắt buộc, xác minh rằng cài đặt vị trí giao hàng được áp dụng và kiểm tra phạm vi đánh giá riêng biệt với hỗ trợ trang sản phẩm. Hỏi xem kết quả được thu thập theo yêu cầu hay được phục vụ từ bộ nhớ cache, đặc biệt khi theo dõi giá hoặc tình trạng còn hàng.
Công cụ không cần code cho xuất dữ liệu nhỏ và nghiên cứu nhanh
Tiện ích mở rộng trình duyệt và scraper có sẵn rất thực tế để thu thập danh sách ngắn các sản phẩm cạnh tranh, kiểm tra giá hiển thị hoặc xuất danh sách cho báo cáo nghiên cứu. Bạn thường cung cấp URL sản phẩm hoặc mở trang được hỗ trợ, chọn các trường có sẵn và xuất kết quả mà không cần viết code thu thập.
Kiểm tra cách công cụ chạy trước khi dựa vào nó cho công việc lặp lại. Tiện ích mở rộng trình duyệt có thể yêu cầu trình duyệt của bạn vẫn mở, trong khi scraper được lưu trữ có thể hỗ trợ các công việc theo lịch. Xác minh giới hạn batch, định dạng xuất, lập lịch và liệu cài đặt vị trí giao hàng có được duy trì giữa các lần chạy hay không.
Có API Amazon chính thức cho web scraping không?
Amazon cung cấp các API chính thức cho các mục đích kinh doanh xác định, nhưng chúng khác với các dịch vụ bên thứ ba trích xuất nội dung website. Nếu bạn đang tìm kiếm API Amazon cho web scraping, trước tiên hãy kiểm tra xem API chính thức có cung cấp thông tin mà dự án của bạn cần hay không.
Selling Partner API (SP-API) hỗ trợ quy trình làm việc của người bán và nhà cung cấp được ủy quyền. Quyền truy cập phụ thuộc vào ứng dụng, vai trò bắt buộc và quy trình ủy quyền liên quan; chỉ có tài khoản mua sắm Amazon không cấp quyền truy cập. Các ứng dụng công khai thường yêu cầu ủy quyền đối tác bán hàng, trong khi các ứng dụng riêng tư sử dụng tự ủy quyền.
Amazon cũng cung cấp API Customer Feedback, cung cấp thông tin chi tiết về đánh giá ở cấp độ ASIN và danh mục sản phẩm, cộng với thông tin chi tiết về hoàn trả ở cấp độ danh mục. Nó bao gồm các chủ đề và xu hướng thay vì cung cấp bản xuất đầy đủ của mọi đánh giá riêng lẻ. Quyền truy cập yêu cầu vai trò đủ điều kiện, chẳng hạn như Brand Analytics hoặc Selling Partner Insights.
Một API Amazon scraper của bên thứ ba là dịch vụ trích xuất của nhà cung cấp riêng biệt. Thông tin xác thực, các trường được hỗ trợ và thanh toán thuộc về nhà cung cấp đó, và việc đăng ký không cấp ủy quyền Amazon.
Phương pháp | Phù hợp nhất với | Công sức thiết lập | Bảo trì | Mô hình chi phí |
Scraper Python tùy chỉnh | Các trường tùy chỉnh, quy trình xác thực và lưu trữ | Cao hơn: xây dựng và kiểm thử mã thu thập | Nhóm của bạn bảo trì phân tích cú pháp, các phụ thuộc và xử lý lỗi | Chi phí phát triển, hosting và proxy |
API scraping được quản lý | Thu thập định kỳ với ít cơ sở hạ tầng trích xuất cần bảo trì hơn | Trung bình: tích hợp API và xác thực đầu ra | Nhà cung cấp bảo trì việc trích xuất; bạn bảo trì tích hợp và kiểm tra dữ liệu | Yêu cầu, tín dụng, bản ghi hoặc đăng ký |
Công cụ no-code | Nghiên cứu nhanh và xuất dữ liệu đơn giản | Thấp hơn: cấu hình đầu vào và các trường có sẵn | Kiểm tra template, các job thất bại và chất lượng xuất dữ liệu | Hạn mức miễn phí, đăng ký hoặc tín dụng sử dụng |
API chính thức của Amazon | Quy trình nghiệp vụ được hỗ trợ với quyền truy cập cần thiết | Khác nhau: đăng ký, vai trò, ủy quyền và tích hợp | Duy trì quyền, khả năng tương thích API và xử lý dữ liệu | Kiểm tra phí chương trình áp dụng và chi phí tích hợp |
Cách scrape dữ liệu sản phẩm Amazon bằng Python
Một hướng dẫn Python hữu ích nên đưa bạn từ URL sản phẩm đến một bản ghi có cấu trúc mà bạn có thể kiểm tra. Chúng ta sẽ xây dựng quy trình đó theo từng giai đoạn: xác định các trường bắt buộc, thiết lập dự án, lấy trang, trích xuất chi tiết sản phẩm và xuất kết quả ra CSV hoặc JSON.
Bắt đầu với một tập nhỏ các URL sản phẩm để bạn có thể so sánh đầu ra với các trang nguồn. Mỗi bản ghi nên bảo toàn ASIN, biến thể đã chọn, giá, tiền tệ và dấu thời gian thu thập, với các giá trị bị thiếu được đánh dấu rõ ràng.
Xác định các trường, marketplace và phạm vi thu thập của bạn
Trước khi viết scraper, hãy quyết định một bản ghi hoàn chỉnh nên chứa gì và những điều kiện nào phải nhất quán giữa các lần chạy. Đối với hướng dẫn này, hãy bắt đầu với một danh sách nhỏ các URL sản phẩm từ một marketplace Amazon.
Thiết lập | Cần xác định gì |
Marketplace | Chọn tên miền Amazon mà bạn muốn nghiên cứu, chẳng hạn như Amazon.com cho Hoa Kỳ. |
URL đầu vào | Sử dụng các URL trang sản phẩm cụ thể và xác định các biến thể mà bạn dự định theo dõi. |
Các trường bắt buộc | Bắt đầu với ASIN, tiêu đề, biến thể đã chọn, giá, tiền tệ, tình trạng có sẵn, URL nguồn và dấu thời gian thu thập. Thêm thông tin người bán và giao hàng nếu phân tích của bạn cần chúng. |
Ngữ cảnh giao hàng | Chọn quốc gia đích và mã ZIP, sau đó xác minh rằng phương pháp thu thập áp dụng chúng. Ghi lại các thiết lập chưa được xác minh là không xác định. |
Tần suất thu thập | Điều chỉnh lịch trình phù hợp với quyết định mà dữ liệu hỗ trợ, bắt đầu với một lần chạy đơn lẻ trước khi triển khai các công việc định kỳ. |
Xác định những trường bị thiếu nào khiến bản ghi không sử dụng được. Ví dụ, thiếu giá sẽ ngăn cản việc so sánh giá nhưng vẫn có thể để lại thông tin hữu ích về tình trạng còn hàng. Giữ nguyên sự phân biệt đó để Amazon scraper của bạn có thể đánh dấu các bản ghi chưa đầy đủ mà không loại bỏ các quan sát hợp lệ.
Thiết lập dự án Amazon scraper Python của bạn
Bắt đầu với môi trường ảo để giữ các phụ thuộc của dự án tách biệt khỏi các ứng dụng Python khác. Thiết lập này đã được kiểm tra với Python 3.12.14, Requests 2.34.2 và Beautiful Soup 4.15.0. Cài đặt, import và phân tích HTML mẫu đã vượt qua; trích xuất Amazon trực tiếp chưa được kiểm tra ở giai đoạn này.
Requests xử lý các yêu cầu HTTP, trong khi Beautiful Soup trích xuất các trường từ HTML được trả về. Cả hai đều không thực thi JavaScript.
Tạo thư mục dự án và môi trường ảo:
mkdir amazon-scraper
cd amazon-scraper
python -m venv .venvKích hoạt môi trường bằng lệnh phù hợp với hệ điều hành của bạn.
macOS hoặc Linux
source .venv/bin/activateWindows
.\.venv\Scripts\Activate.ps1 Cài đặt các phiên bản phụ thuộc đã kiểm tra:
python -m pip install requests==2.34.2 beautifulsoup4==4.15.0Tạo một tệp có tên amazon_scraper.py và thêm cấu hình ban đầu bên dưới. Chèn các URL sản phẩm mục tiêu của bạn vào PRODUCT_URLS, giữ mỗi URL trong dấu ngoặc kép và phân tách các mục bằng dấu phẩy.
</> python
import os
from urllib.parse import urlparse
import requests
from bs4 import BeautifulSoup
MARKETPLACE = "www.amazon.com"
REQUEST_TIMEOUT = 30
OUTPUT_FILE = "amazon_products.csv"
PRODUCT_URLS = [
# Add your target Amazon product URLs here.
]
for url in PRODUCT_URLS:
parsed = urlparse(url)
if parsed.scheme != "https" or parsed.hostname != MARKETPLACE:
raise ValueError("Each URL must use the selected marketplace.")
session = requests.Session()
# Optional: supply the full proxy URL through your environment.
proxy_url = os.environ.get("AMAZON_PROXY_URL")
if proxy_url:
session.proxies.update({
"http": proxy_url,
"https": proxy_url,
})Giữ mật khẩu proxy và khóa API trong các biến môi trường được cung cấp thông qua môi trường phát triển hoặc trình quản lý bí mật triển khai của bạn. Tránh nhúng thông tin xác thực vào script, commit chúng vào Git hoặc in chúng trong logs.
Mẹo: Cấu hình này chuẩn bị phiên làm việc nhưng không tải trang sản phẩm hoặc đặt mã ZIP giao hàng của Amazon. Để ngữ cảnh giao hàng chưa được xác minh cho đến khi quy trình thu thập áp dụng và kiểm tra rõ ràng.
Tải một trang sản phẩm và kiểm tra những gì nhận được
Phản hồi HTTP thành công không đảm bảo rằng Amazon scraper của bạn đã nhận được trang sản phẩm. Máy chủ có thể trả về HTTP 200 OK với trang thách thức, màn hình đăng nhập hoặc trang không mong đợi khác, vì vậy hãy kiểm tra cả trạng thái phản hồi và nội dung trước khi trích xuất các trường sản phẩm.
Thêm hàm bên dưới sau cấu hình phiên của bạn. Nó kiểm tra lỗi yêu cầu, chuyển hướng không mong đợi, phản hồi không phải HTML, các chỉ báo thách thức phổ biến và phần tử tiêu đề sản phẩm.
def fetch_product_page(url):
try:
response = session.get(url, timeout=REQUEST_TIMEOUT)
response.raise_for_status()
except requests.RequestException:
# Avoid logging exception details that could expose proxy credentials.
raise RuntimeError(
"Request failed. Check connectivity and the HTTP response."
) from None
if urlparse(response.url).hostname != MARKETPLACE:
raise RuntimeError("The request redirected to another domain.")
content_type = response.headers.get("Content-Type", "").lower()
if "text/html" not in content_type:
raise RuntimeError("Expected HTML but received another content type.")
soup = BeautifulSoup(response.text, "html.parser")
page_text = soup.get_text(" ", strip=True).lower()
challenge_markers = (
"enter the characters you see below",
"sorry, we just need to make sure you're not a robot",
"validatecaptcha",
)
if (
soup.select_one('form[action*="validateCaptcha"]')
or any(marker in page_text for marker in challenge_markers)
):
raise RuntimeError(
"A challenge page was returned. Pause and review the request."
)
title = soup.select_one("#productTitle")
if title is None or not title.get_text(strip=True):
raise RuntimeError(
"Product title not found. The page may be unexpected "
"or its structure may have changed."
)
return soup, response.urlGọi hàm cho một URL trước khi xử lý toàn bộ danh sách:
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
print("Page passed the initial checks.")
print("Title:", soup.select_one("#productTitle").get_text(strip=True))
except RuntimeError as error:
print("Collection stopped:", error)Beautiful Soup phân tích HTML ở đây để kiểm tra cấu trúc của nó; trích xuất bản ghi sản phẩm sẽ đến tiếp theo. Các kiểm tra này là sơ bộ: cách diễn đạt thách thức và bố cục trang có thể thay đổi, và việc tìm thấy tiêu đề không xác nhận ASIN được yêu cầu, biến thể đã chọn hoặc vị trí giao hàng. Xác minh những thứ đó riêng biệt trước khi chấp nhận bản ghi.
Trích xuất các trường sản phẩm và xử lý giá trị bị thiếu
Sau khi trang vượt qua các kiểm tra ban đầu, hãy trích xuất một tập hợp nhỏ các trường: ASIN, tiêu đề, giá hiển thị và tình trạng còn hàng. Giữ URL nguồn và dấu thời gian thu thập với mỗi bản ghi để bạn có thể truy vết sau này.
Sử dụng None khi một trường bị thiếu. Thiếu giá có thể có nghĩa là ưu đãi không khả dụng, trang yêu cầu lựa chọn khác hoặc bộ chọn không còn khớp nữa. Chuyển đổi nó thành số không sẽ đưa giá sai vào phân tích của bạn.
Thêm phần sau bên dưới các hàm hiện có của bạn.
from datetime import datetime, timezone
def text_or_none(soup, selector):
element = soup.select_one(selector)
if element is None:
return None
return element.get_text(" ", strip=True) or None
def extract_product_fields(soup, source_url):
asin_element = soup.select_one("input#ASIN")
asin = (
asin_element.get("value", "").strip() or None
if asin_element is not None
else None
)
# Limit extraction to the main price area to reduce the chance
# of collecting a price from recommendations or another offer.
price_text = text_or_none(
soup,
"#corePriceDisplay_desktop_feature_div "
".priceToPay .a-offscreen",
)
return {
"asin": asin,
"title": text_or_none(soup, "#productTitle"),
"price_text": price_text,
"availability_text": text_or_none(soup, "#availability"),
"source_url": source_url,
"collected_at": datetime.now(timezone.utc).isoformat(),
}Giữ giá dưới dạng văn bản hiển thị ở giai đoạn này. Tách giá trị số và tiền tệ của nó yêu cầu xác thực theo định dạng của thị trường; chỉ riêng ký hiệu tiền tệ có thể mơ hồ.
Sau khi tải thành công, hãy gọi hàm trích xuất:
record = extract_product_fields(soup, final_url)
missing_fields = [
field
for field in ("asin", "title", "price_text", "availability_text")
if record[field] is None
]
print(record)
print("Missing fields:", missing_fields)Đặt lệnh gọi này bên trong khối try thành công từ bước trước, ngay sau fetch_product_page(), để việc trích xuất không chạy sau yêu cầu thất bại.
Giá trị bị thiếu nên kích hoạt kiểm tra thay vì tìm kiếm rộng hơn bất kỳ giá nào trên trang. Trước khi sử dụng bản ghi để so sánh, cũng hãy xác minh ASIN được yêu cầu, biến thể đã chọn, người bán và ngữ cảnh giao hàng.
Xuất sang CSV hoặc JSON và xác thực mẫu
Xuất mỗi bản ghi sản phẩm với URL nguồn, dấu thời gian thu thập, thị trường và ngữ cảnh giao hàng của nó. Giữ mã ZIP được yêu cầu tách biệt khỏi vị trí thực sự quan sát được trên trang: nhập mục tiêu trong cấu hình của bạn không chứng minh Amazon đã áp dụng nó.
JSON bảo toàn các giá trị bị thiếu dưới dạng null, trong khi xuất CSV này để chúng trống. Cả hai định dạng đều không nên thay thế giá bị thiếu bằng số không.
Thêm hàm này bên dưới các hàm hiện có của bạn.
import csv
import json
def export_records(records, csv_path, json_path):
if not records:
raise ValueError("No records to export.")
fields = list(records[0])
with open(csv_path, "w", encoding="utf-8", newline="") as file:
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
writer.writerows(records)
with open(json_path, "w", encoding="utf-8") as file:
json.dump(
records,
file,
ensure_ascii=False,
indent=2,
allow_nan=False,
)Thay thế khối kiểm tra URL đơn trước đó bằng phần sau. Nó kết nối việc tải, trích xuất và xuất bằng cách sử dụng các hàm đã được định nghĩa.
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
# Leave unknown until you implement delivery-location controls.
REQUESTED_DELIVERY_ZIP = None
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
record = extract_product_fields(soup, final_url)
record.update({
"marketplace": urlparse(final_url).hostname,
"requested_delivery_zip": REQUESTED_DELIVERY_ZIP,
"observed_delivery_zip": None,
"delivery_location_verified": False,
})
export_records(
[record],
OUTPUT_FILE,
"amazon_products.json",
)
print("Exported one record. Validate it before using it.")
except (RuntimeError, ValueError, OSError) as error:
print("Job stopped:", type(error).__name__)Sau đây là ví dụ cho thấy các trường bị thiếu xuất hiện như thế nào.
{
"asin": null,
"title": "Sample product, blue",
"price_text": null,
"availability_text": null,
"source_url": "https://www.amazon.com/dp/EXAMPLE123",
"collected_at": "2026-10-14T14:00:00+00:00",
"marketplace": "www.amazon.com",
"requested_delivery_zip": null,
"observed_delivery_zip": null,
"delivery_location_verified": false
}Kiểm tra xác thực: Hàm xuất đã được kiểm tra trên Python 3.12.14 với một bản ghi mẫu. JSON bảo toàn các giá trị bị thiếu và cờ vị trí Boolean, CSV bảo toàn tiêu đề chứa dấu phẩy và để trống các giá trị bị thiếu, và đầu vào rỗng đã bị từ chối. Điều này xác minh hành vi xuất; nó không xác minh việc truy xuất Amazon trực tiếp hoặc các selector.
Trước khi lên lịch cho dự án Amazon scraper Python của bạn, hãy kiểm tra một vài bản ghi so với các trang nguồn của chúng:
Xác nhận ASIN, biến thể đã chọn và người bán khớp với sản phẩm và ưu đãi dự định.
So sánh giá và đơn vị tiền tệ hiển thị dưới cùng cài đặt giao hàng.
Kiểm tra dấu thời gian và URL nguồn, đồng thời điều tra các trường bắt buộc bị thiếu.
Giữ các bản ghi phụ thuộc vị trí ngoài phép so sánh cho đến khi ngữ cảnh giao hàng của chúng được xác minh.
Các lỗi dự kiến bao gồm yêu cầu bị chặn, bố cục trang thay đổi, chi tiết ưu đãi bị thiếu và lỗi ghi tệp. Một bản ghi không đầy đủ vẫn có thể chứa thông tin hữu ích, nhưng nó không nên được coi là một quan sát giá hoàn chỉnh.
Học cách scrape Amazon bao gồm việc nhận biết những giới hạn đó. Nếu bạn muốn hiểu cách scrape dữ liệu từ Amazon một cách đáng tin cậy, hãy xác thực các bản ghi đã lưu trước khi tăng khối lượng thu thập.
Cách sử dụng Amazon ASIN scraper mà không nhầm lẫn sản phẩm
Amazon ASIN scraper giúp bạn xây dựng danh sách các mã định danh sản phẩm và truy xuất các chi tiết liên quan của chúng. Để có các phép so sánh đáng tin cậy, hãy giữ các mã định danh đó được kết nối với marketplace đúng, biến thể đã chọn và ưu đãi của người bán. Nếu không, việc chuyển đổi giữa các sản phẩm hoặc ưu đãi có thể trông giống như thay đổi giá.
Amazon Standard Identification Number là gì?
Amazon Standard Identification Number (ASIN) là mã định danh chữ và số 10 ký tự được sử dụng để xác định một mặt hàng trong danh mục của Amazon. Nó cung cấp cho quy trình thu thập của bạn một tham chiếu chính xác hơn so với tiêu đề sản phẩm, vốn có thể thay đổi hoặc giống với các danh sách khác.
Lưu trữ marketplace cùng với mỗi ASIN và phân biệt mã định danh với SKU của người bán. ASIN xác định mặt hàng trong danh mục, trong khi SKU của người bán xác định một danh sách trong hệ thống hàng tồn kho của chính người bán đó. Các API của Amazon sử dụng những mã định danh này cho các hoạt động khác nhau.
Trích xuất ASIN từ URL sản phẩm và kết quả tìm kiếm
Coi việc khám phá ASIN là một bước riêng biệt với việc thu thập giá, tình trạng còn hàng và các chi tiết sản phẩm khác. Danh sách các mã định danh cho scraper của bạn biết những mặt hàng nào cần điều tra; nó không xác nhận những mặt hàng đó hiện có giá bao nhiêu.
Sử dụng trình tự này khi bạn scrape dữ liệu Amazon ASIN:
Khám phá các mã định danh ứng viên. Trích xuất chúng từ các liên kết sản phẩm hoặc thuộc tính danh sách trong HTML trang tìm kiếm được trả về. Bảo toàn URL nguồn và, đối với kết quả tìm kiếm, truy vấn và vị trí.
Xác thực định dạng. Kiểm tra chính xác 10 chữ cái hoặc chữ số. Việc vượt qua kiểm tra này chỉ xác nhận hình dạng dự kiến, không phải ASIN tồn tại hoặc đại diện cho biến thể dự định của bạn.
Loại bỏ trùng lặp hàng đợi thu thập. Sử dụng marketplace và ASIN cùng nhau để tránh lấy cùng một mặt hàng trong danh mục nhiều lần.
Lấy và xác minh chi tiết sản phẩm. So sánh mã định danh được khám phá với mặt hàng thực sự được trả về, sau đó kiểm tra biến thể đã chọn trước khi chấp nhận dữ liệu ưu đãi của nó.
Giữ các quan sát tìm kiếm riêng biệt với hàng đợi đã loại bỏ trùng lặp. Một ASIN xuất hiện dưới hai truy vấn có thể chỉ yêu cầu một lần lấy sản phẩm, nhưng cả hai lần xuất hiện đều có thể quan trọng cho phân tích khả năng hiển thị.
Giữ sản phẩm cha, biến thể con và ưu đãi của người bán riêng biệt
ASIN cha nhóm các biến thể liên quan và bản thân nó không phải là một ưu đãi có thể mua được. ASIN con xác định một biến thể cụ thể, chẳng hạn như một kết hợp kích thước và màu sắc. Các ưu đãi của người bán nằm bên dưới danh tính sản phẩm đó và mô tả ai đang bán nó, ở tình trạng gì và với giá bao nhiêu.
Xem xét ví dụ minh họa sau:
Cấp độ | Ví dụ | Những gì scraper của bạn nên lưu giữ |
Họ sản phẩm | Áo phông được cung cấp với nhiều kích cỡ và màu sắc | ASIN gốc và mối quan hệ của nó với các sản phẩm con |
Biến thể đã chọn | Áo phông màu xanh dương, cỡ trung bình | ASIN con, màu sắc và kích cỡ |
Ưu đãi của người bán | Người bán A cung cấp biến thể đó mới với giá $18, cộng $3 phí vận chuyển | Mã định danh người bán, tình trạng, giá sản phẩm, phí vận chuyển và thời gian thu thập |
Giả sử lần chạy tiếp theo thu thập được áo phông màu xanh dương cỡ lớn với giá $24. Đó là một biến thể khác, vì vậy việc báo cáo mức tăng $6 sẽ gây hiểu lầm. Nếu áo cỡ trung bình thay vào đó xuất hiện với giá $20 từ Người bán B, ưu đãi quan sát được đã thay đổi, nhưng điều đó không chứng minh rằng Người bán A đã tăng giá.
Để theo dõi giá, hãy so sánh cùng một thị trường, ASIN con, người bán, tình trạng và bối cảnh giao hàng qua các lần thu thập. Nếu mục tiêu của bạn là theo dõi bất kỳ ưu đãi nào Amazon hiển thị, hãy ghi lại rõ ràng các thay đổi về người bán để bạn có thể giải thích điều gì đã thay đổi.
Cách scrape đánh giá Amazon và đo lường phạm vi bao phủ
Để hiểu cách scrape đánh giá Amazon một cách đáng tin cậy, hãy bắt đầu bằng việc xác định phản hồi bạn cần và kiểm tra phương pháp đã chọn của bạn có thể truy xuất được bao nhiêu. Một Amazon review scraper có thể trả về các bản ghi hữu ích mà không bao phủ mọi đánh giá liên quan đến một sản phẩm. Hãy đo lường phạm vi bao phủ đó trước khi đưa ra kết luận về cảm nhận của khách hàng.
Chọn các trường đánh giá mà nghiên cứu của bạn cần
Thu thập đủ thông tin để phân tích phản hồi, xác định trùng lặp và truy vết từng bản ghi về nguồn gốc của nó.
Trường | Tại sao nó quan trọng |
ID đánh giá | Xác định một đánh giá để loại bỏ trùng lặp và thu thập lặp lại. |
Xếp hạng | Kết nối phản hồi bằng văn bản với điểm sao của nó. |
Tiêu đề và nội dung | Ghi lại các nhận xét của khách hàng để phân tích chủ đề và cảm xúc. |
Ngày đánh giá | Giúp phân tách trải nghiệm gần đây khỏi phản hồi cũ hơn. |
Chỉ báo xác minh mua hàng | Lưu giữ nhãn xác minh mua hàng khi có sẵn; nó không phải là bảo đảm về độ chính xác. |
Biến thể liên quan | Ghi lại kích cỡ, màu sắc hoặc tùy chọn khác liên quan đến đánh giá khi được hiển thị. |
URL nguồn | Cung cấp tham chiếu để kiểm tra phản hồi gốc. |
Giữ các trường không có sẵn dưới dạng giá trị bị thiếu. Ví dụ, một chỉ báo mà scraper của bạn không trích xuất được nên giữ ở trạng thái không xác định thay vì được ghi lại là "không được xác minh". Lưu trữ dấu thời gian thu thập riêng biệt với ngày xuất bản của đánh giá.
Cách scrape Amazon theo mã ZIP
Học cách scrape Amazon theo mã ZIP bắt đầu với việc thiết lập điểm đến giao hàng và xác nhận rằng nó vẫn được áp dụng khi bạn thu thập dữ liệu sản phẩm. Kết nối proxy Mỹ đơn thuần không thiết lập mã ZIP mà Amazon sử dụng cho ước tính giao hàng.
Ví dụ Python ở trên chưa triển khai các điều khiển vị trí giao hàng. Các trường vị trí của nó vẫn chưa được xác minh cho đến khi bạn thêm quy trình trình duyệt hoặc sử dụng dịch vụ scraping có hỗ trợ được ghi chép cho cài đặt giao hàng của Amazon.
Thiết lập và xác minh vị trí giao hàng
Đối với quy trình dựa trên trình duyệt, sử dụng trình tự sau:
Mở marketplace đích
Mở bộ chọn vị trí giao hàng của Amazon
Đợi trang cập nhật
Mở sản phẩm đích và chọn biến thể của nó
Ghi lại vị trí quan sát được cùng với các trường sản phẩm
Giữ cài đặt giao hàng và ngữ cảnh phiên nhất quán
Một số cài đặt đóng góp vào ngữ cảnh thu thập, nhưng chúng phục vụ các mục đích khác nhau.
Cài đặt | Vai trò | Cần xác minh gì |
Tên miền marketplace | Chọn cửa hàng Amazon đang được truy vấn | Yêu cầu và trang cuối cùng sử dụng tên miền dự định. |
Địa chỉ giao hàng hoặc mã ZIP | Chỉ định điểm đến được sử dụng cho thông tin giao hàng | Trang sản phẩm phản ánh điểm đến được yêu cầu. |
Cookie và phiên trình duyệt | Bảo toàn lựa chọn vị trí và trạng thái duyệt web khác | Vị trí vẫn được áp dụng sau khi điều hướng và làm mới. |
Vị trí proxy | Kiểm soát vị trí thoát mạng | Kết nối sử dụng khu vực dự định mà không giả định rằng nó thiết lập mã ZIP giao hàng. |
Đối với quy trình trình duyệt tùy chỉnh, một phiên proxy sticky có thể giúp bảo toàn tính liên tục của mạng. Nó không thay thế bước chọn vị trí hoặc chứng minh rằng Amazon đã giữ lại điểm đến bạn đã chọn.
So sánh cùng một sản phẩm trong điều kiện được kiểm soát
Bắt đầu với một child ASIN và hai mã ZIP, thu thập cả hai quan sát trong một khoảng thời gian ngắn. Giữ biến thể đã chọn, tình trạng sản phẩm, số lượng và trạng thái tài khoản nhất quán. Giữ người bán cố định nếu có thể; nếu người bán hiển thị thay đổi, hãy ghi lại sự thay đổi đó trước khi diễn giải chênh lệch giá.
Lưu các chi tiết này với mỗi quan sát:
Mã ZIP được yêu cầu, vị trí giao hàng quan sát được và trạng thái xác minh.
Marketplace, child ASIN, biến thể đã chọn, người bán và tình trạng.
Giá sản phẩm hiển thị, đơn vị tiền tệ, phí vận chuyển, tình trạng còn hàng và ước tính giao hàng.
URL nguồn và dấu thời gian thu thập.
Đối với một so sánh nhỏ, sử dụng mẫu ghi chép sau. Đây là bảng tính thử nghiệm, không phải kết quả Amazon quan sát được.
Quan sát | Lần chạy ZIP code A | Lần chạy ZIP code B |
ZIP code được yêu cầu | 10001 | 90001 |
Địa điểm giao hàng quan sát được | Ghi lại từ phản hồi | Ghi lại từ phản hồi |
Dấu thời gian thu thập | Ghi lại thời gian thực tế | Ghi lại thời gian thực tế |
Child ASIN và biến thể | Ghi lại và khớp | Ghi lại và khớp |
Người bán và tình trạng | Ghi lại và so sánh | Ghi lại và so sánh |
Giá sản phẩm và phí vận chuyển | Ghi lại riêng biệt | Ghi lại riêng biệt |
Tình trạng còn hàng và ước tính giao hàng | Ghi lại giá trị hiển thị | Ghi lại giá trị hiển thị |
Một so sánh ZIP code mô tả những quan sát đó tại những thời điểm đó. Nó không nên được trình bày như bằng chứng về sự chênh lệch giá vùng miền vĩnh viễn.
Cách chọn API scraping thương mại điện tử tốt nhất cho dữ liệu sản phẩm Amazon
API scraping thương mại điện tử tốt nhất cho dữ liệu sản phẩm Amazon là API trả về các trường mà quy trình làm việc của bạn cần, trong điều kiện thu thập phù hợp, với chi phí bền vững. Đánh giá các nhà cung cấp dựa trên cùng đầu vào và tiêu chí chấp nhận để một phản hồi nhanh nhưng không đầy đủ không vượt trội hơn một bản ghi chậm hơn nhưng có thể sử dụng được trên lý thuyết.
Kiểm tra phạm vi trường dữ liệu, kiểm soát vị trí và hỗ trợ đánh giá
Chuyển các yêu cầu về tập dữ liệu của bạn thành danh sách kiểm tra trước khi thử nghiệm. Tách các trường thiết yếu khỏi các trường tùy chọn: một công việc giám sát giá có thể yêu cầu child ASIN, người bán, giá, đơn vị tiền tệ và ngữ cảnh giao hàng, trong khi khám phá sản phẩm có thể ưu tiên tiêu đề, thương hiệu, danh mục và mã định danh.
Kiểm tra tài liệu cho từng khả năng được yêu cầu, sau đó xác minh nó trong đầu ra. Hỗ trợ cho "dữ liệu Amazon" không chứng minh rằng mọi endpoint đều xử lý các biến thể, ưu đãi của người bán, ZIP code giao hàng và đánh giá một cách đồng đều.
Đo lường kết quả có thể sử dụng, thời gian phản hồi và tổng chi phí
Xác định kết quả có thể sử dụng trước khi tính toán thành công. Đối với so sánh giá, nó có thể có nghĩa là một bản ghi với child ASIN chính xác, các trường ưu đãi bắt buộc, ngữ cảnh giao hàng đã xác minh và dấu thời gian thu thập chấp nhận được. Đối với giám sát tình trạng còn hàng, một sản phẩm hết hàng được xác định chính xác có thể hữu ích ngay cả khi không có giá.
Sử dụng cùng định nghĩa trên các nhà cung cấp:
Tỷ lệ kết quả có thể sử dụng = số quan sát được yêu cầu đáp ứng tiêu chí chấp nhận của bạn ÷ tổng số quan sát được yêu cầu × 100
Một quan sát là một lần kiểm tra sản phẩm và vị trí đã lên kế hoạch tại một thời điểm thu thập cụ thể. Các lần thử lại và phản hồi trùng lặp không nên làm tăng số lượng quan sát thành công.
Theo dõi lỗi theo nguyên nhân: thiếu các trường bắt buộc, sản phẩm hoặc vị trí sai, đầu ra trùng lặp, lỗi truy xuất và lỗi phân tích cú pháp. Điều này giúp dễ dàng hơn để xem liệu điểm yếu của nhà cung cấp có ảnh hưởng đến khối lượng công việc thực tế của bạn hay không.
Đo lường thời gian trôi qua cho đến khi dữ liệu có thể sử dụng sẵn có, bao gồm các lần thử lại và polling bất đồng bộ. Đối với các bài kiểm tra lớn hơn, hãy so sánh thời gian phản hồi điển hình với các yêu cầu chậm hơn thay vì chỉ dựa vào giá trị trung bình.
Tính toán chi phí theo nguyên tắc tương tự:
Chi phí trên mỗi quan sát khả dụng = tổng chi phí kiểm tra ÷ số quan sát khả dụng
Bao gồm các lần thử lại tính phí, phí render, tính năng vị trí và các khoản phụ trội bắt buộc khác. Đối với các công việc định kỳ, cũng cần tính đến mức tối thiểu của gói đăng ký và công việc cần thiết để làm sạch hoặc sửa chữa đầu ra.
Kiểm tra một mẫu đại diện trước khi mở rộng quy mô
Bắt đầu với khoảng 20 URL sản phẩm trên ba hoặc bốn danh mục, bao gồm các biến thể khác nhau và một vài sản phẩm được quan sát là không khả dụng. Chạy từng sản phẩm với hai mã ZIP giao hàng để có bài kiểm tra đầu tiên dễ quản lý với khoảng 40 quan sát.
Giữ đầu vào và cài đặt nhất quán giữa các nhà cung cấp, thu thập trong một khoảng thời gian ngắn và ghi lại bất kỳ thay đổi nào trên trang nguồn có thể ảnh hưởng đến việc so sánh. Kiểm tra từng bản ghi trong mẫu ban đầu này trước khi đưa vào lịch trình định kỳ.
Sử dụng bảng này để ghi lại kết quả:
Yêu cầu | Kiểm tra | Kết quả | Hạn chế |
Các trường sản phẩm bắt buộc | Kiểm tra từng bản ghi so với danh sách trường đã thống nhất | Ghi lại số quan sát hoàn chỉnh trên tổng số | Ghi chú các trường bị thiếu hoặc được điền không nhất quán. |
Biến thể chính xác | So sánh child ASIN và thuộc tính được trả về với biến thể được yêu cầu | Ghi lại các trường hợp khớp và không khớp | Đánh dấu các chuyển hướng hoặc lựa chọn biến thể chưa được giải quyết. |
Kiểm soát vị trí giao hàng | Yêu cầu hai mã ZIP và kiểm tra ngữ cảnh giao hàng được quan sát | Ghi lại các trường hợp vị trí khớp đã được xác minh | Nêu rõ khi chỉ mã ZIP được yêu cầu được trả về. |
Sản phẩm không khả dụng | Kiểm tra xem các mặt hàng không khả dụng có được xác định mà không tạo ra giá hay không | Ghi lại trạng thái chính xác | Phân biệt tình trạng không khả dụng từ nguồn với lỗi trích xuất. |
Hỗ trợ đánh giá | Kiểm tra một công việc đánh giá nhỏ riêng biệt với các bộ lọc và phân trang đã xác định | Ghi lại các đánh giá khả dụng duy nhất | Ghi lại giới hạn truy cập và phạm vi chưa biết. |
Độ mới | Kiểm tra dấu thời gian thu thập và hành vi bộ nhớ đệm được ghi lại | Ghi lại độ mới so với yêu cầu của bạn | Đánh dấu các dấu thời gian chỉ cho biết thời gian phản hồi. |
Thời gian phản hồi | Đo lường từ lúc gửi yêu cầu đến khi nhận được đầu ra khả dụng, bao gồm cả các lần thử lại | Ghi lại thời gian điển hình và chậm nhất | Mẫu nhỏ không thể xác định hiệu suất ở quy mô lớn. |
Tổng chi phí | Đối chiếu mức sử dụng được tính phí với các quan sát khả dụng | Ghi lại chi phí cho mỗi quan sát khả dụng | Bao gồm các khoản phụ trội bắt buộc và mức tối thiểu của gói đăng ký. |
Lựa chọn dựa trên các yêu cầu quan trọng nhất đối với quy trình scraping dữ liệu sản phẩm Amazon của bạn. Nhà cung cấp hoạt động tốt trong bài kiểm tra nhỏ này xứng đáng được thử nghiệm ở quy mô lớn hơn; tuy nhiên họ chưa chứng minh được hiệu suất tương tự trên toàn bộ catalog của bạn.
Sử dụng code GitHub cho Amazon scraper của bạn
Tìm kiếm "how to scrape amazon product data github" có thể dẫn bạn đến các scraper có thể chạy được, tích hợp API và hướng dẫn với các yêu cầu rất khác nhau. Trước khi cài đặt một repository, hãy xác định xem nó thực hiện gì ở local, phụ thuộc vào dịch vụ nào và liệu đầu ra của nó có khớp với dự án của bạn hay không.
Kiểm tra xem repository thực sự cung cấp gì
Đọc README cùng với code gửi request. Chỉ riêng tên repository không cho bạn biết cách thức thu thập hoạt động như thế nào.
Loại repository | Nó cung cấp gì | Cần kiểm tra gì |
Scraper độc lập | Code truy xuất trang và trích xuất các trường | Liệu bạn có phải cung cấp proxy, các dependency của trình duyệt hay cơ sở hạ tầng bổ sung |
API client | Code giao tiếp với một dịch vụ riêng biệt | Thông tin xác thực bắt buộc, các endpoint được hỗ trợ và phí dịch vụ |
Hướng dẫn | Ví dụ minh họa một kỹ thuật cụ thể | Các bước thiết lập, xác thực và xử lý lỗi nào vẫn chưa hoàn thiện |
Ví dụ dịch vụ thương mại | Code mẫu cho thấy cách sử dụng sản phẩm của nhà cung cấp | Yêu cầu tài khoản, giới hạn dùng thử và các dependency trả phí |
Tại sao Amazon scraper của bạn trả về kết quả bị chặn, trống hoặc không chính xác
Khi Amazon scraper tạo ra đầu ra bất ngờ, hãy kiểm tra response trước khi thay đổi cài đặt kết nối. Request bị chặn, offer bị thiếu và selector bị lỗi đòi hỏi các cách khắc phục khác nhau. Xoay IP sẽ không sửa được parser hoặc khôi phục vị trí giao hàng chưa bao giờ được áp dụng.
Triệu chứng | Cần điều tra gì | Làm gì tiếp theo |
Trang từ chối truy cập hoặc trang thách thức | Trạng thái HTTP, nội dung trang trả về, tần suất request và các hạn chế truy cập | Tạm dừng các lỗi lặp lại và xem xét lại phương pháp thu thập. Sử dụng thử lại có giới hạn cho các lỗi tạm thời thay vì liên tục request trang thách thức. |
Response thành công nhưng không có trường sản phẩm | Liệu response có chứa trang sản phẩm, markup bất ngờ hay nội dung bị thiếu trong HTML ban đầu | Kiểm tra HTML trả về. Chỉ cập nhật selector sau khi xác nhận nội dung mong muốn có mặt; đánh giá việc render trình duyệt nếu các trường bắt buộc tải động. |
Thiếu giá | Tình trạng sẵn có của sản phẩm, biến thể đã chọn, đề nghị của người bán và bộ chọn giá | So sánh trang với bản ghi đã trích xuất. Giữ nguyên giá trị bị thiếu và ghi lại nguyên nhân có khả năng thay vì thay thế bằng số không hoặc thu thập giá không liên quan. |
Thông tin giao hàng sai | Liệu mã ZIP có được áp dụng và giữ nguyên qua các thay đổi điều hướng hoặc phiên làm việc hay không | Kiểm tra điểm đến được quan sát trên trang sản phẩm. Áp dụng lại và xác minh vị trí, sau đó lặp lại quan sát bị ảnh hưởng. |
Sản phẩm hoặc đánh giá trùng lặp | Phân trang lặp lại, đầu vào chồng chéo và xử lý định danh | Loại bỏ trùng lặp hàng đợi tìm nạp sản phẩm theo marketplace và ASIN, cũng như đánh giá theo marketplace và ID đánh giá nếu có sẵn. Giữ nguyên các quan sát có chủ đích từ các thời điểm hoặc vị trí khác nhau. |
Kết quả khác nhau giữa các lần chạy | Thời gian thu thập, biến thể đã chọn, người bán, tình trạng, vị trí giao hàng và cài đặt phiên làm việc | So sánh ngữ cảnh đã lưu trước khi gắn nhãn sự khác biệt là thay đổi giá hoặc tình trạng sẵn có. Lặp lại kiểm tra trong điều kiện nhất quán nếu nguyên nhân vẫn chưa rõ ràng. |
Giữ một nhật ký lỗi ngắn gọn với URL nguồn, dấu thời gian, trạng thái phản hồi, danh mục lỗi và các cài đặt thu thập liên quan. Loại trừ thông tin xác thực và giá trị phiên làm việc nhạy cảm. Điều này cung cấp đủ bằng chứng để phân biệt các vấn đề truy xuất với lỗi trích xuất và thay đổi thực sự trên trang.
Scraping dữ liệu sản phẩm Amazon: thực hành tốt nhất và hướng dẫn đạo đức
Web scraping có đạo đức bắt đầu với một mục đích xác định: thông tin bạn cần, cách bạn sẽ thu thập nó và bạn định làm gì với nó sau đó. Nếu bạn đang tìm kiếm "amazon product data scraping best practices ethical guidelines", hãy sử dụng các kiểm tra sau để biến những câu hỏi đó thành quyết định cụ thể.
Xem xét điều khoản của Amazon và mục đích sử dụng dữ liệu của bạn
Nội dung hiển thị công khai không tự động đi kèm với quyền không hạn chế để thu thập, lưu trữ hoặc tái xuất bản. Điều khoản sử dụng của Amazon đề cập đến khai thác dữ liệu, robot và các công cụ trích xuất tương tự. Xem xét các điều khoản áp dụng cho marketplace của bạn và bất kỳ API hoặc dịch vụ dữ liệu nào bạn sử dụng trước khi bắt đầu thu thập.
Xem xét việc thu thập và tái sử dụng riêng biệt. Phân tích giá nội bộ, xuất bản trích đoạn đánh giá và phân phối lại bộ dữ liệu sản phẩm liên quan đến các cách sử dụng khác nhau của tài liệu. Xác nhận các quyền liên quan đến dự án của bạn, bao gồm mọi hạn chế về lưu giữ, hiển thị hoặc phân phối lại. Đăng ký scraping hoặc kết nối proxy không tự nó cấp quyền đối với nội dung của Amazon.
Bảo toàn nguồn gốc và ghi chép các hạn chế
Người khác phải có khả năng hiểu một bản ghi đến từ đâu và nó đại diện cho gì mà không cần tái tạo lại scraper của bạn. Bảo toàn URL nguồn, marketplace, ASIN, dấu thời gian thu thập, biến thể đã chọn, người bán và ngữ cảnh giao hàng được yêu cầu và quan sát nếu liên quan.
Thêm ghi chú thu thập ngắn gọn ghi chép:
Phiên bản công cụ hoặc mã và cài đặt thu thập.
Bộ lọc, sắp xếp, phân trang và điều kiện dừng.
Trường bị thiếu, yêu cầu thất bại và quy tắc loại bỏ trùng lặp.
Liệu cài đặt vị trí có được xác minh và kết quả có được lưu trong bộ nhớ cache hay không.
Khoảng trống phạm vi đã biết, đặc biệt đối với đánh giá của khách hàng.
Giữ các giá trị quan sát tách biệt với các giả định hoặc trường được tính toán. Nếu phạm vi không xác định, hãy nói rõ; nếu giá bị thiếu, hãy để nó thiếu. Những phân biệt đó làm cho bộ dữ liệu dễ kiểm toán hơn và giúp ngăn chặn các so sánh gây hiểu lầm.
Đối với quy trình làm việc tùy chỉnh, hãy khám phá danh mục proxy của CyberYozh App và chọn cơ sở hạ tầng phù hợp với vị trí mục tiêu, độ dài phiên làm việc yêu cầu và lưu lượng dự kiến của bạn. Bắt đầu với một công việc thu thập nhỏ đã được xác thực trước khi mở rộng khối lượng công việc.
