TL;DR
- Việc trích xuất dữ liệu sản phẩm chỉ thành công khi giá, tiền tệ, biến thể và tình trạng sẵn có tham chiếu đến cùng một ưu đãi.
- Hồ sơ sản phẩm chỉ hợp lệ khi giá, tiền tệ, tình trạng sẵn có và biến thể tham chiếu đến cùng một ưu đãi.
- Product JSON-LD là một nguồn ứng cử viên hữu ích, nhưng hãy so sánh nó với ưu đãi đã chọn được hiển thị.
- Sử dụng khám phá có giới hạn cho một phần danh mục đã được xem xét và giữ các trang danh mục ra khỏi hồ sơ sản phẩm.
- Nstdata Crawl xử lý việc kết xuất JavaScript và định tuyến proxy trong các yêu cầu được quản lý; tài liệu của nó liệt kê sáu loại đầu ra: Markdown, HTML, dữ liệu thô, PDF, ảnh chụp màn hình và liên kết.
Dữ Liệu Sản Phẩm Cấu Trúc Được Tính Là Gì?
Dữ liệu sản phẩm cấu trúc là một hồ sơ có kiểu cho một sản phẩm hoặc biến thể cụ thể: tên, định danh, tùy chọn đã chọn, giá, tiền tệ, tình trạng sẵn có và URL nguồn. Các trang thương mại điện tử thường hiển thị nhiều ưu đãi, giá khu vực, đăng ký, gói hoặc các biến thể đã chọn trên một màn hình. Một lớp bọc trang-generic-to-JSON không xác định được giá trị nào thuộc về ưu đãi nào. Định nghĩa danh tính hồ sơ và bằng chứng cho từng trường trước khi mở rộng.
Nstdata Crawl có thể biến một URL hoặc một tập hợp trang liên kết có giới hạn thành tài liệu cho một tác nhân AI, chỉ mục RAG, hoặc pipeline dữ liệu. Sử dụng quy tắc trường riêng của bạn và kiểm tra chấp nhận cho kết quả cụ thể: truy xuất các trang sản phẩm được phép và ánh xạ các chi tiết hiển thị hoặc nhúng vào các hồ sơ đã được xác thực. Hướng dẫn Nstdata full-site crawling giải thích tùy chọn cấp trang.
Đối với nhiệm vụ hẹp hơn được đề cập ở đây, hướng dẫn Nstdata website-to-JSON cung cấp bối cảnh hữu ích để chọn trang đại diện đầu tiên.
Bạn Cần Gì Trước Khi Bắt Đầu?
Chọn một trang sản phẩm công cộng hoặc được ủy quyền và ghi lại biến thể đã chọn, SKU dự kiến, văn bản giá, tiền tệ, tình trạng sẵn có và ngữ cảnh cập nhật cuối cùng. Xác định xem trang web có cung cấp nguồn cấp dữ liệu chính thức hoặc API hay không; sử dụng cái đó khi thích hợp. Đặt quy tắc cho giá bán so với giá niêm yết, nhãn hết hàng, nhiều người bán và tiền tệ khu vực. Giữ thông tin nhạy cảm của khách hàng hoặc dữ liệu tài khoản ra khỏi quy trình làm việc.
Tài liệu Crawl API sử dụng https://api.nstdata.io, tiêu đề x-api-key, và Content-Type: application/json. Chuẩn bị các trường này trước khi chạy phương pháp:
| Trường | Nội dung cần cung cấp |
|---|---|
url | Một trang HTTPS hoặc URL vào trang được phép |
formats | Đầu ra yêu cầu, chẳng hạn như ["markdown"] hoặc ["html","screenshot"] |
onlyMainContent | true chỉ khi lựa chọn thân chính phù hợp với nhiệm vụ |
maxDepth, maxPages | Giới hạn rõ ràng cho một công việc trên toàn trang |
includeUrls, excludeUrls | Mẫu URL giữ cho việc khám phá trong phạm vi |
timeout | Thời gian hết hạn cho một công việc trong mili giây khi mặc định không phù hợp |
Yêu cầu quản lý tiêu chuẩn không có trường Proxy Host, Port, Username, Password hoặc Protocol riêng biệt. Kiểm tra trang giá hiện tại của Crawl để biết giới hạn tài khoản và các khoản phí trước khi chạy một công việc lớn.
Xem xét chính sách truy cập và phạm vi của đối tượng. Giao thức loại trừ robots định nghĩa cách mà các kiến trúc sư đọc quy tắc robots; nó không cấp quyền sử dụng nội dung. Giữ thông tin xác thực và dữ liệu cá nhân ra khỏi các ví dụ và nhật ký chẩn đoán.
Hướng dẫn Nstdata e-commerce scraping là một tài liệu đồng hành để định nghĩa các kiểm tra chấp nhận trước khi bạn tự động hóa quy trình làm việc.
Các Trang Sản Phẩm Phơi Bày Dữ Liệu Cấu Trúc Như Thế Nào?
Nstdata Crawl có thể kết xuất các trang sản phẩm nặng JavaScript, thu thập Markdown hoặc HTML, và thực hiện quét một phần danh mục có giới hạn. Trang sản phẩm của nó quảng bá đầu ra JSON, trong khi ví dụ API hiển thị không chỉ định một sơ đồ sản phẩm tùy ý. Sử dụng Crawl như lớp truy xuất và làm sạch, sau đó phân tích dữ liệu sản phẩm cấu trúc đã công bố hoặc các yếu tố DOM đã xem xét và xác thực so với trang hiển thị. Định tuyến proxy được quản lý đã được tích hợp; yêu cầu tiêu chuẩn không yêu cầu thông tin xác thực proxy riêng biệt.
Đối với một URL đã biết, một lần quét một trang sẽ thu được một kết quả. Đối với một phần của trang web, POST /api/v1/crawl sẽ phát hiện các trang liên kết một cách đệ quy trong độ sâu, số trang và quy tắc URL đã cung cấp. Tài liệu hướng dẫn liệt kê Markdown, HTML, dữ liệu thô, PDF, ảnh chụp màn hình và liên kết là sáu loại đầu ra; trang sản phẩm cũng quảng cáo JSON, nhưng một sơ đồ JSON cụ thể cho miền vẫn cần ánh xạ trường rõ ràng. Giữ mỗi hồ sơ đã chấp nhận liên kết với URL nguồn của nó và siêu dữ liệu trả lại.
Kiểm tra một trang nặng JavaScript đại diện trước khi mở rộng. Trạng thái kết xuất có thể phụ thuộc vào thời gian, khu vực, đồng ý hoặc phiên đã đăng nhập. So sánh HTML trả lại hoặc một ảnh chụp màn hình với trạng thái trang mong đợi; nếu chúng khác nhau, hãy điều chỉnh chỉ các điều khiển kết xuất đã được tài liệu và chờ đợi.
Làm Thế Nào Để Trích Xuất Dữ Liệu Sản Phẩm Từ Các Trang Thương Mại Điện Tử?
So sánh một đề nghị đã được kết xuất với mã nhúng của nó, sau đó tự động hóa các URL sản phẩm đã biết hoặc một phần danh mục đã giới hạn. Lập bản đồ các trường chỉ sau khi biến thể và khu vực đã chọn được làm rõ.
Phương Pháp 1: Kiểm Tra Một Sản Phẩm Trong Playground
Tốt nhất cho việc xác định những gì trang thực sự cung cấp.
Bước 1: Mở một sản phẩm đại diện
Sử dụng Dashboard → Crawl Playground với một URL sản phẩm được ủy quyền. [Chụp màn hình: URL, kết xuất và định dạng đầu ra.]
Bước 2: Yêu cầu HTML và bằng chứng hình ảnh
Chọn đầu ra HTML và ảnh chụp màn hình. Nếu giá hoặc hàng tồn kho được tải sau JavaScript, hãy sử dụng thời gian chờ sẵn có được ghi tài liệu có sẵn trong Playground.
Bước 3: So sánh các biến thể
Kiểm tra biến thể đã chọn trong ảnh chụp màn hình với bất kỳ Product JSON-LD nhúng và giá hiển thị nào. Đừng pha trộn tên sản phẩm cha với một đề nghị của biến thể khác.
Phương Pháp 2: Lấy Trang Thông Qua API
Tốt nhất cho việc thu thập lặp lại từ các URL sản phẩm đã biết.
Bước 1: Lưu trữ khóa một cách bảo mật
Giữ NSTDATA_API_TOKEN trên máy chủ và gửi nó dưới dạng x-api-key.
Bước 2: Yêu cầu trang
Sử dụng hình dạng thu thập thông tin nhanh chóng được ghi tài liệu dưới đây cho HTML và Markdown. Kiểm tra tuyến đường được tạo ra từ Playground hiện tại vì tài liệu gán nhãn các tuyến đường thu thập khác một cách không đồng nhất.
Đặt NSTDATA_API_TOKEN trong shell của bạn từ tài khoản Nstdata của bạn, sau đó chạy yêu cầu khởi động nhanh được ghi tài liệu. Tài liệu công khai gán nhãn một số tuyến đường đồng bộ và không đồng bộ khác không nhất quán; so sánh yêu cầu được tạo ra từ Playground của tài khoản bạn trước khi sử dụng trong sản xuất.
curl --output crawl-response.json --request POST "https://api.nstdata.io/api/v1/crawl/scrape/submit-sync" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/product/sample","formats":["html","markdown"]}'
Phản hồi được lưu vào crawl-response.json. Kiểm tra các trường lồng nhau data.success, data.status, và data.data.metadata.statusCode trước khi sử dụng bất kỳ nội dung nào đã trả về.
Bước 3: Lập bản đồ các trường
Phân tích mã nhúng của Sản phẩm khi có sẵn và so sánh giá trị của nó với nội dung hiển thị. Nếu HTML đã làm sạch bỏ qua các tập lệnh JSON-LD, hãy kiểm tra một đại diện dữ liệu thô trong tài khoản của bạn trước khi giả định rằng không có mã nhúng có cấu trúc.
Nếu trang công bố JSON-LD cho Sản phẩm, hãy lưu HTML thô dưới dạng page.html và kiểm tra các đề nghị đã khai báo của nó trước khi lập bản đồ các trường. Mã sau đây trích xuất các nút Sản phẩm mà không giả định mỗi cửa hàng đều sử dụng cùng một sơ đồ đề nghị:
from bs4 import BeautifulSoup import json soup = BeautifulSoup(open("page.html", encoding="utf-8").read(), "html.parser") nodes = [] for script in soup.select('script[type="application/ld+json"]'): try: data = json.loads(script.string or script.get_text()) except json.JSONDecodeError: continue stack = data if isinstance(data, list) else [data] while stack: item = stack.pop() if isinstance(item, dict): if item.get("@type") == "Product" or "Product" in (item.get("@type") or []): nodes.append(item) graph = item.get("@graph", []) stack.extend(graph if isinstance(graph, list) else [graph]) if not nodes: raise ValueError("Không có Product JSON-LD; hãy kiểm tra DOM đã được kết xuất") for product in nodes: print(json.dumps({"name": product.get("name"), "sku": product.get("sku"), "offers": product.get("offers")}, ensure_ascii=False, indent=2))
Cài đặt Beautiful Soup với python3 -m pip install beautifulsoup4. Xem mỗi đề nghị được in ra như một ứng viên: so sánh biến thể, giá, tiền tệ, và tình trạng khả dụng với trang đã được kết xuất trước khi lưu một bản ghi sản phẩm.
Phương Pháp 3: Thu Thập Một Phần Danh Mục Đã Giới Hạn
Tốt nhất cho một danh mục đã được xem xét hoặc một tập hợp ngắn các sản phẩm liên quan.
Bước 1: Đặt Phạm Vi
Bắt đầu từ một URL danh mục và đặt một maxDepth, maxPages nhỏ, và các quy tắc bao gồm/loại trừ để tránh các đường dẫn giỏ hàng, tìm kiếm, và tài khoản.
Bước 2: Thu Thập Các Bản Ghi Trang
Gửi yêu cầu POST /api/v1/crawl, truy vấn trạng thái, và lấy tất cả các trang. Xác định các trang chi tiết sản phẩm một cách rõ ràng; các trang danh mục không phải là các bản ghi sản phẩm.
Đối với một công việc trên trang, thay thế máy chủ và đường dẫn ví dụ bằng phạm vi được phê duyệt của bạn, sau đó gửi một yêu cầu đã giới hạn:
curl --output crawl-submit.json --request POST "https://api.nstdata.io/api/v1/crawl" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/docs/","formats":["html"],"maxDepth":2,"maxPages":10,"includeUrls":["*example.com/docs/*"],"excludeUrls":["*example.com/admin/*"],"ignoreQuery":true}'
Sao chép data.id từ crawl-submit.json làm ID thu thập của bạn.
Bước 3: Xác Thực Các Đề Nghị
Khử trùng bằng cách sử dụng ID sản phẩm và biến thể ổn định, chuẩn hóa tiền tệ mà không thay đổi ý nghĩa, và từ chối các trang mà đề nghị đã chọn không thể được gắn liền với các giá trị đã trích xuất.
Phương pháp 4: Sử dụng Product JSON-LD được công bố từ một trang tĩnh
Tốt nhất cho các trang sản phẩm công cộng mà HTML gốc đã chứa đầy đủ đánh dấu sản phẩm.
Bước 1: Lưu HTML của sản phẩm
Lưu một trang sản phẩm được ủy quyền dưới dạng page.html và ghi chú biến thể đã chọn, giá hiển thị, tiền tệ và trạng thái tồn kho.
Bước 2: Chiết xuất các đề nghị ứng viên
Chạy bộ phân tích Product JSON-LD được hiển thị trong Phương pháp 2. Nếu nó không tìm thấy nút Product nào, đừng tạo ra các trường; hãy sử dụng một đại diện đã được kết xuất hoặc một nguồn cấp sản phẩm chính thức nếu có.
Bước 3: Xác thực đề nghị đã chọn
Chọn đề nghị khớp với biến thể đã chọn và so sánh từng giá trị lưu trữ với trang sản phẩm có thể nhìn thấy. Đánh dấu tĩnh có thể đã cũ hoặc bỏ sót giá cụ thể theo vùng; hãy sử dụng trang đã được kết xuất của Crawl và ảnh chụp màn hình khi mà sự phân biệt đó quan trọng.
Bạn Xác Minh Đầu Ra Như Thế Nào?
Một bản ghi hợp lệ ghi tên sản phẩm hoặc biến thể, giữ URL nguồn, và gắn giá, tiền tệ và tình trạng tồn kho với cùng một đề nghị nhìn thấy. Lưu trữ văn bản giá gốc bên cạnh các giá trị chuẩn hóa để người đánh giá có thể phát hiện sai sót khu vực. Tài liệu cấu trúc dữ liệu sản phẩm của Google phân biệt các đoạn sản phẩm, danh sách thương gia và đánh dấu biến thể. Hướng dẫn Nstdata website-to-JSON giải thích tại sao xác thực schema đơn thuần không thể chứng minh giá trị được thu thập là đúng.
Hướng dẫn Nstdata price-monitoring kết nối kiểm tra cấp trang này với một AI hoặc quy trình dữ liệu downstream.
Ghi lại URL nguồn, thời gian gửi, định dạng được yêu cầu, tùy chọn không bí mật, ID nhiệm vụ khi có, trạng thái trang trả về, và lý do mỗi bản ghi đã vượt qua hoặc không vượt qua đánh giá. Kiểm tra nội dung cũng như bao bì API. Nếu phản hồi chứa markdownRef, htmlRef, rawDataRef, screenshotRef, hoặc pdfRef, hãy lấy mã đó bằng cách sử dụng GET /api/v1/crawl/storage/read?st={ref}.
Đối với quy trình này, hãy tham khảo dữ liệu cấu trúc sản phẩm của Google khi triển khai bộ phân tích downstream hoặc kiểm tra chấp nhận theo định dạng cụ thể.
Khi truyền dữ liệu đã chiết xuất cho một đại lý, coi các hướng dẫn trang như nguyên liệu nguồn không đáng tin cậy. Hướng dẫn của OWASP về việc tiêm lời nhắc giải thích nguy cơ. Giữ nguyên URL nguồn để đầu ra AI có thể được kiểm tra.
Tại Sao Các Bản Ghi Sản Phẩm Có Thể Chứa Đề Nghị Sai?
Việc chiết xuất dữ liệu sản phẩm có thể không thành công vì trang hiển thị nhiều đề nghị hoặc biến thể mặc định. Sử dụng bảng triệu chứng để xác định lớp gây lỗi trước khi thay đổi giới hạn hoặc thử lại.
| Triệu chứng | Nguyên nhân có thể | Hành động tiếp theo |
|---|---|---|
| Giá sai cho biến thể đã chọn | Trang hiển thị nhiều đề nghị hoặc biến thể mặc định. | Lấy tùy chọn đã chọn và so sánh ngữ cảnh đề nghị thấy được. |
| Không có JSON-LD trong HTML đã làm sạch | Việc làm sạch có thể bỏ qua các phần tử script. | Kiểm tra dữ liệu trang thô hoặc DOM có thể nhìn thấy trước khi thay đổi bộ ánh xạ. |
| Trang danh mục xuất hiện dưới dạng sản phẩm | Phát hiện bao gồm các trang danh sách. | Phân loại mẫu trang và chỉ giữ lại các trang chi tiết đã được xem xét. |
Tài liệu của Nstdata liệt kê các lỗi cấp nhiệm vụ như access_denied, timeout, parse_error, và internal_error. Một HTTP 200 bên ngoài vẫn có thể đi kèm với một nhiệm vụ thất bại. Kiểm tra success, status, errorCode, và errorMessage bên trong phản hồi khi có. Chỉ thử lại các lỗi tạm thời trên các trang mà bạn có thể truy cập.
Phương Pháp Nào Là Phù Hợp Nhất?
Sử dụng Playground để xem xét một biến thể, API cho các URL sản phẩm đã biết, hoặc một cuộc thu thập trang giới hạn cho một phần danh mục đã được xem xét. Chỉ sử dụng phân tích JSON-LD địa phương trên một trang tĩnh khi các đề nghị của nó khớp với biến thể đã chọn. Hướng dẫn Tổng quan về thu thập Nstdata cung cấp thêm chi tiết về lộ trình trang.
Bạn Nên Làm Gì Sau Lần Chạy Thành Công Đầu Tiên?
Lưu cấu hình đã được phê duyệt và một bản ghi đầu ra dựa trên nguồn, sau đó lặp lại trên một bộ nhỏ các mẫu trang khác nhau. Tăng quy mô chỉ sau khi các bản ghi đó vượt qua cùng một kiểm tra chấp nhận.
FAQ: Bạn cần biết thêm điều gì?
Q: Có phải Crawl tạo ra một lược đồ sản phẩm hoàn chỉnh không?
Tài liệu API công khai xác nhận đầu ra trang nhưng không định nghĩa rõ ràng việc trích xuất trường sản phẩm tùy ý. Lập bản đồ và xác thực các trường trong ứng dụng của bạn.
Q: JSON-LD sản phẩm có thể thay thế các kiểm tra hiển thị không?
Không. Đánh dấu có cấu trúc có thể đã lỗi thời hoặc tham chiếu đến một biến thể khác; hãy so sánh nó với đề nghị được hiển thị.
Q: Tôi có nên lưu trữ giá sản phẩm dưới dạng số dấu phẩy động không?
Ưu tiên giá trị an toàn thập phân hoặc văn bản gốc cộng với đơn vị tiền tệ; tránh làm tròn im lặng và giả định về địa phương.
Q: Việc trích xuất dữ liệu sản phẩm có cần cấu hình proxy riêng với Nstdata Crawl không?
Một yêu cầu Crawl quản lý tiêu chuẩn không yêu cầu các trường Proxy Host, Port, Username, Password, hoặc Protocol riêng biệt. Xác nhận bất kỳ lựa chọn proxy tùy chọn nào và các khoản phí sử dụng liên quan trong tài khoản của bạn.
Q: HTTP 200 có chứng minh rằng kết quả trích xuất dữ liệu sản phẩm có thể sử dụng không?
Không. Kiểm tra kết quả tác vụ lồng, trạng thái trang, các trường mong đợi, và độ trung thành của nội dung trước khi sử dụng nó trong một quy trình AI hoặc dữ liệu.





