84 sao trên GitHub và con số này vẫn đang tiếp tục tăng. Yozh Crawler + Scraper là phần mềm miễn phí, mã nguồn mở và được phát triển công khai — hãy nhấn sao cho chúng tôi nếu công cụ này xứng đáng có một vị trí trong hệ thống công nghệ của bạn.
CyberYozh Data / Các trường hợp sử dụng / Thương mại điện tử & Nền tảng thương mại điện tử
Trường hợp sử dụng · Thương mại điện tử

Một cấu trúc dữ liệu. Mọi sàn thương mại điện tử

Chỉ cần gửi bất kỳ URL sản phẩm nào — từ Amazon, eBay, Walmart, AliExpress hay hơn 20 nền tảng khác — và bạn sẽ nhận lại dữ liệu JSON có cấu trúc gọn gàng, nhất quán. Không cần phải quản lý các bộ chọn (selectors), không phải đối phó với bot, cũng không có các quy trình xử lý dễ bị gián đoạn.

$curl -X POST localhost:8000/api/v1/scrape/page \ -d '{"url":"amazon.com/dp/B0CFFXRFTH"}'
amazon.com/dp/B0CFFXRFTH
scrape_page amazon.com
Fetching product page
Bypassing anti-bot
Extracting JSON-LD + DOM
Normalizing variants
Resolving images
Các công trình về các sàn thương mại điện tử này
Tại sao các công cụ thu thập dữ liệu chung chung lại thất bại

Các sàn thương mại điện tử đã loại bỏ các công cụ thu thập dữ liệu “một kích cỡ phù hợp với tất cả” chỉ trong vòng một quý

Các nền tảng thương mại điện tử thường cập nhật giao diện vài tuần một lần, triển khai hệ thống chống bot nhiều lớp, giới hạn quyền truy cập vào Buy Box và dữ liệu người bán theo từng phiên làm việc, đồng thời trả về cấu trúc trường dữ liệu khác nhau tùy theo từng vùng ngôn ngữ. Hầu hết các đội ngũ dành 80% thời gian để duy trì hoạt động của công cụ thu thập dữ liệu và chỉ 20% cho việc xử lý dữ liệu thực tế. Chúng tôi cung cấp bốn tính năng mà họ thường phải xây dựng lại từ đầu.

Nếu bạn từng thức dậy và thấy bảng điều khiển đầy ắp nullsau khi nền tảng thương mại điện tử được thiết kế lại — thì bài viết này dành cho bạn.

Các selector sẽ làm gián đoạn mọi sự thay đổi bố cục

Vấn đề là: Các công cụ thu thập dữ liệu thông thường chỉ gửi đường dẫn CSS hoặc XPath rồi “cầu may”. Khi một sàn thương mại điện tử thiết kế lại trang chi tiết sản phẩm (PDP) — Amazon làm điều này cứ vài tuần một lần — quy trình xử lý của bạn sẽ trả về kết quả nulltrong môi trường sản xuất. Bạn chỉ phát hiện ra vấn đề này vài giờ sau đó thông qua bảng điều khiển BI ở giai đoạn sau.

Cách Yozh Scraper khắc phục vấn đề này. Truyền llm: {model: "..."} trong yêu cầu và trình phân tích cú pháp sẽ yêu cầu Anthropic / OpenAI / Gemini / OpenRouter tái tạo selector từ DOM trực tiếp. Quy trình xử lý tiếp tục chạy với self_heal: true cờ trong phản hồi — không có thông báo đánh thức cho người trực ca.

  • Khả năng tự phục hồi của LLM
  • Nhiều nhà cung cấp
  • Không có thời gian ngừng hoạt động

Một địa chỉ IP, năm yêu cầu, bị cấm

Vấn đề là: Các proxy trung tâm dữ liệu bị vô hiệu hóa chỉ trong một phiên duy nhất. Các rào cản CAPTCHA, nhận dạng dấu vân tay TLS và các bài kiểm tra JavaScript có thể phát hiện trình duyệt không giao diện người dùng chỉ trong vài giây. Hầu hết các nhóm đều phải xây dựng lớp luân phiên proxy từ đầu nhưng vẫn bị chặn.

Cách Yozh Scraper khắc phục vấn đề này. Tích hợp sẵn với CyberYozh App Proxy thông qua CYBERYOZH_API_KEY — 5 loại proxy (dân cư luân phiên / cố định, di động 4G/5G, trung tâm dữ liệu, ISP) trên 250 mã quốc gia. Phiên bản Chromium ẩn danh với dấu vân tay ấm tự động khớp với nguồn gốc proxy.

  • 5 loại proxy
  • 250 mã quốc gia
  • Dấu vân tay ấm

Hình dạng trường khác nhau tùy theo từng sàn giao dịch

Vấn đề là: Giá của Amazon nằm trong một khối dữ liệu, của eBay nằm trong một khối khác, còn của Walmart lại nằm trong một khối thứ ba. Các bảng điều khiển đa sàn giao dịch cần có một lớp chuẩn hóa trước khi chỉ số đầu tiên được công bố. Các nhóm phải mất hàng tuần để đối chiếu cấu trúc các trường dữ liệu.

Cách Yozh Scraper khắc phục vấn đề này. 10 cài đặt sẵn tích hợp src/presets/builtin/ trả về JSON giống hệt nhau trên Amazon, eBay, Walmart, Google Shopping. Các khóa giống nhau: title, price, currency, in_stock, rating. Phân tích tiền tệ theo vùng — cấu trúc vẫn giữ nguyên.

  • 10 cài đặt sẵn
  • Cấu trúc JSON giống nhau
  • Đơn vị tiền tệ tùy theo vùng

Rào cản đăng nhập và các phiên làm việc bị ngắt

Vấn đề. Dữ liệu liên kết với tài khoản — người chiến thắng Buy Box, các cổng thông tin đối tác, quản trị viên nội bộ, nguồn hồ sơ theo phong cách LinkedIn — yêu cầu đăng nhập. Cơ chế lưu trữ cookie tự phát triển sẽ bị lỗi khi xác thực lại. Hầu hết các công cụ thu thập dữ liệu đều không hỗ trợ quản lý phiên làm việc.

Cách Yozh Scraper khắc phục vấn đề này. API phiên làm việc với ngôn ngữ kịch bản đăng nhập (DSL) mang tính khai báo (goto / fill / click / wait) hoặc dán cookie đã xuất ra. Tái sử dụng session_id trong mọi lần thu thập dữ liệu — cookie + storageState tồn tại trong 24 giờ, tự động làm mới ngay lập tức. Yêu cầu bắt buộc đối với cài đặt sẵn LinkedIn, được hỗ trợ bởi tất cả các cài đặt sẵn khác.

  • Đăng nhập theo kiểu khai báo
  • Cookie + trạng thái lưu trữ
  • TTL 24 giờ
Cách thức hoạt động

Chuyển đổi từ URL sang JSON có cấu trúc chỉ trong 3 lần gọi

Không cần viết các bộ chọn. Chỉ cần chọn một cài đặt sẵn, truyền các tham số và phân tích phản hồi. Quy trình này áp dụng cho mọi sàn giao dịch được hỗ trợ.

1 Khởi động

Sao chép kho lưu trữ và docker compose up. Hai dịch vụ sẽ khởi động: scraper trên :8000, crawler trên :8001.

# one-time setup
git clone \
  github.com/CyberYozh-data/yozh-scraper
cd yozh-scraper
docker compose up -d
2 Gọi một cài đặt sẵn

ĐĂNG tên cài đặt sẵn kèm theo các thông số. Không cần chỉ định bộ chọn, không cần điều chỉnh chống bot — gói cài đặt sẵn sẽ tự động xử lý việc phân tích các bộ chọn, ngôn ngữ và đơn vị tiền tệ.

curl \
  localhost:8000/api/v1/scrape/preset/page \
  -X POST \
  -d '{"source": "amazon_product",
       "preset_params": {"asin": "B0CFFXRFTH"},
       "locale": "us"}'
3 Lấy JSON có cấu trúc

Hình dạng giống nhau trên tất cả các vùng. Nếu một bộ chọn bị hỏng sau khi thay đổi bố cục, tính năng tự phục hồi của LLM sẽ tái tạo nó ngay lập tức — quy trình xử lý vẫn tiếp tục chạy.

{
  "asin":       "B0CFFXRFTH",
  "price":      189.99,
  "currency":   "USD",
  "in_stock":   true,
  "rating":     4.7
}
Ví dụ trực tiếp

Lợi ích bạn nhận được — một mẫu thiết kế, phù hợp với mọi nền tảng thương mại điện tử

Hãy chọn một cài đặt sẵn để xem phản hồi trông như thế nào. Bộ trường có thể khác nhau tùy theo nguồn, nhưng cấu trúc yêu cầu là giống hệt nhau.


            
Công thức nấu ăn

Cách các đội triển khai hệ thống — mỗi đội 10 dòng

Ba cấu hình thương mại điện tử cụ thể, sẵn sàng để chèn vào. Không có trình lập lịch nào được tích hợp sẵn — hãy sử dụng cron / Airflow / Temporal của riêng bạn.

1 Tổng quan giá hàng ngày

Xử lý hàng loạt danh sách ASIN của đối thủ cạnh tranh mỗi ngày một lần, so sánh sự khác biệt so với ngày hôm qua, đăng các thay đổi lên Slack. Cron sẽ lo phần còn lại.

# crontab: every day at 06:00
0 6 * * * /usr/local/bin/price-watch.sh

# price-watch.sh
curl -X POST localhost:8000/api/v1/scrape/preset/pages \
  -d "@asins.json" \
| jq '.results[] | {asin, price, in_stock}' \
> today.json

diff yesterday.json today.json | slack-cli post #pricing
mv today.json yesterday.json
200 URL/lô ~30 giây cho mỗi công nhân cron của bạn
2 Phát hiện sản phẩm mới

Hàng ngày thu thập dữ liệu trang danh mục, loại bỏ các URL sản phẩm trùng lặp so với ngày hôm qua. Sử dụng webhook để theo dõi các sản phẩm mới về trước khi đối thủ cạnh tranh lập chỉ mục chúng.

# start a crawl of the category
curl -X POST localhost:8001/api/v1/crawl/start \
  -d '{"seed_url":"amazon.com/s?k=ssd",
       "max_pages":300,
       "scope":"same-domain"}' \
| jq -r '.urls[]' > today_urls.txt

# urls that appeared today
comm -13 yesterday_urls.txt today_urls.txt \
| curl -X POST $WEBHOOK_URL -d @-
Kênh SSE loại bỏ dữ liệu trùng lặp theo từng tác vụ (SHA1) scope + rate-limit
3 Nguồn đã đăng nhập · phiên làm việc

Trích xuất dữ liệu từ các trang yêu cầu đăng nhập (LinkedIn, các cổng thông tin đối tác, hệ thống quản trị nội bộ). Đăng nhập một lần thông qua API Sessions, sau đó tái sử dụng session_id trong mỗi lần trích xuất.

# 1. log in once via declarative script
SID=$(curl -X POST \
  localhost:8000/api/v1/sessions/$ID/login \
  -d "@login_script.json" \
  | jq -r .session_id)

# 2. reuse for every scrape · cookies persist 24h
curl -X POST localhost:8000/api/v1/scrape/preset/page \
  -d "{\"source\":\"linkedin_profile\",
       \"preset_params\":{\"slug\":\"satyanadella\"},
       \"session_id\":\"$SID\"}"
TTL 24 giờ cookie + trạng thái lưu trữ CAPTCHA: dán các chiếc bánh quy
FAQ

Các câu hỏi thường gặp về dữ liệu thị trường

Các sàn thương mại điện tử nào được hỗ trợ?
10 cài đặt sẵn tích hợp src/presets/builtin/ bao gồm các nguồn dữ liệu lớn nhất: amazon_product (Mỹ, Anh, Đức, Pháp, Nhật), amazon_search (Mỹ, Anh, Đức), ebay_search (Mỹ, Anh, Đức), walmart_product (Mỹ), google_search (Mỹ, Anh, Đức, Pháp, Nga, Nhật), google_shopping (Mỹ, Anh, Đức), bing_search (Mỹ, Anh, Đức, Pháp, Nga, Nhật), yandex_search (Mỹ, Anh, Đức, Pháp, Nga, Nhật), youtube_video (toàn cầu), linkedin_profile (toàn cầu, yêu cầu session_id). Cần thứ gì khác? Hãy sử dụng POST /api/v1/presets/generate với một URL mẫu — một mô hình ngôn ngữ lớn (LLM) sẽ tự động suy luận cấu trúc dữ liệu và tạo các bộ chọn cho bạn.
Cấu trúc dữ liệu này ổn định đến mức nào?
Cấu trúc trường dữ liệu giống nhau trên các khu vực và cài đặt sẵn — amazon_product trong các miền .us, .uk, .de, .fr, .jp đều trả về các khóa giống hệt nhau (đơn vị tiền tệ được địa phương hóa, cấu trúc không thay đổi). Các trường tùy chọn được cho phép có giá trị null một cách rõ ràng, do đó các giá trị bị thiếu sẽ không bao giờ làm hỏng trình phân tích cú pháp của bạn. Khi một nền tảng thương mại điện tử thay đổi bố cục, tính năng tự phục hồi của LLM sẽ tự động tái tạo bộ chọn ngay lập tức (chỉ cần llm: {model: "..."} trong yêu cầu) — quy trình xử lý tiếp tục hoạt động với self_heal: true cờ trong phản hồi. Các thay đổi gây gián đoạn chỉ được phát hành trong các phiên bản phụ kèm theo ghi chú chuyển đổi trong CHANGELOG.md.
Tôi có thể trích xuất dữ liệu từ Amazon / eBay / Walmart không?
Đúng vậy — cả ba đều là các cài đặt sẵn chất lượng cao, không cần cấu hình thêm. Amazon hỗ trợ 5 khu vực địa phương (us, uk, de, fr, jp) cho trang chi tiết sản phẩm (PDP) và tìm kiếm; eBay hỗ trợ tìm kiếm tại us/uk/de; Walmart .us dành cho trang sản phẩm. Mỗi dịch vụ đều trả về cấu trúc JSON giống nhau: title, price, currency, in_stock, rating, seller, cùng với các trường dữ liệu đặc thù của từng nền tảng (nếu có) như ASIN, người chiến thắng Buy Box, cờ quảng cáo. Đối với dữ liệu liên quan đến tài khoản yêu cầu đăng nhập (giá Prime, cổng thông tin đối tác), hãy sử dụng API Sessions và truyền session_id cùng với yêu cầu.
Tôi có thể nhận được dữ liệu đầu tiên trong bao lâu?
Tổng thời gian khoảng 5 phút. git clone + docker compose up -d Kích hoạt công cụ trích xuất dữ liệu trong khoảng 30 giây (Docker tải hình ảnh một lần). Lần đầu tiên curl POST /api/v1/scrape/preset/page trả về dữ liệu JSON có cấu trúc trong 1–3 giây đối với các vùng ngôn ngữ đã được lưu trong bộ nhớ đệm, và tối đa 5–8 giây khi chưa có dữ liệu trong bộ nhớ đệm. Không cần đăng ký, không cần tạo khóa API, không có hệ thống tính phí SaaS — bạn chỉ cần truy cập điểm cuối localhost:8000 ngay khi container hoạt động bình thường.
Quý vị có hỗ trợ proxy và chống bot không?
Đúng vậy. Công cụ trích xuất dữ liệu này tích hợp với CyberYozh App Proxy thông qua CYBERYOZH_API_KEY — 5 loại proxy trải rộng trên 250 mã quốc gia (proxy dân cư xoay vòng / cố định, di động 4G/5G, trung tâm dữ liệu, ISP). Chức năng chống bot được xử lý bởi phiên bản Chromium ẩn danh với dấu vân tay ấm, kết hợp với proxy dân cư và thời gian truy cập giống con người — hầu hết các luồng truy cập đều tránh được CAPTCHA hoàn toàn. Khi CAPTCHA xuất hiện, công cụ thu thập dữ liệu sẽ trả về dưới dạng lỗi có cấu trúc thay vì tự động giải quyết mà không thông báo. Nguyên tắc chung: sử dụng proxy dân cư luân phiên cho việc thu thập dữ liệu quy mô danh mục, và proxy di động cho các khu vực có biện pháp chống bot nghiêm ngặt hoặc các tác vụ liên quan đến tài khoản.
Nguồn mở · Giấy phép MIT · 84 ★

Sẵn sàng thu thập dữ liệu từ các sàn thương mại điện tử chưa?

Yozh Scraper hỗ trợ Amazon, eBay, Walmart và Google Shopping ngay từ khi cài đặt. Miễn phí. Mãi mãi. Hãy đánh giá sao cho chúng tôi nếu ứng dụng này hữu ích — mỗi sao đều rất quan trọng.

Yozh Crawler + Scraper được phát hành theo giấy phép MIT. Hãy sử dụng nó. Hãy tạo nhánh từ dự án này. Hãy phát triển dựa trên nó.

Được các đội ngũ phân tích dữ liệu và các nhà phát triển AI yêu thích

Những người đang phát triển ứng dụng với Yozh nói gì

5,0 / 5 · Đánh giá 5
GitHub
Chỉ trong một buổi chiều, chúng tôi đã thay thế cụm Playwright nội bộ bằng Yozh. Điểm cuối MCP được tích hợp trực tiếp vào tác nhân Claude của chúng tôi — không cần viết mã kết nối, trình thu thập dữ liệu và trình trích xuất dữ liệu đều hoạt động ngay lập tức.
Marcus Reinhardt Kỹ sư Dữ liệu Trưởng Northwind Analytics
X
Hệ thống cài đặt sẵn chính là tính năng nổi bật nhất. Chúng tôi chỉ cần truyền vào tên nguồn là sẽ nhận lại được dữ liệu JSON đã được làm sạch; tính năng tự khắc phục lỗi thậm chí còn phát hiện ra hai thay đổi về bố cục của Amazon trước khi chúng tôi kịp nhận ra.
Priya Nair Người sáng lập ScrapeStack
Reddit
Cuối cùng thì cũng có một công cụ thu thập dữ liệu mã nguồn mở coi các máy chủ proxy và phiên làm việc là yếu tố then chốt. Chúng tôi triển khai công cụ này để truy cập các cổng thông tin đối tác có yêu cầu đăng nhập — các phiên làm việc được duy trì và kết quả luôn nhất quán trên các khu vực.
Daniel Osei Kỹ sư hệ thống phía máy chủ Loopfeed
X
Sau khi kết nối với Cursor qua MCP, hiện tại agent của tôi có thể lấy dữ liệu web thời gian thực ngay trong quá trình thực hiện tác vụ. Tính năng thu thập dữ liệu theo thời gian thực qua SSE chính là điều mà các quy trình làm việc của agent còn thiếu.
Elena Kovac Kỹ sư Trí tuệ nhân tạo Vektor Labs
GitHub
Chúng tôi đã ngừng sử dụng một API trích xuất dữ liệu trả phí để cắt giảm chi phí và chuẩn bị tinh thần cho việc chất lượng dịch vụ sẽ giảm sút — nhưng kết quả lại hoàn toàn ngược lại. Hệ thống tự vận hành, không tính phí theo từng yêu cầu, và cấu trúc dữ liệu đầu ra còn gọn gàng hơn so với dịch vụ mà trước đây chúng tôi phải trả tiền để sử dụng.
Sofia Almeida Trưởng phòng Kỹ thuật Tabbly