ArachneControl – Hệ thống thu thập dữ liệu mã nguồn mở, nơi máy chủ điều khiển từ xa trình duyệt để thu thập
(github.com/TaewonyNet)Đây là một hệ thống thu thập dữ liệu self-hosted, thu thập dữ liệu bằng phiên trình duyệt thực của người dùng, trong khi máy chủ phát hành động vào thời gian chạy việc thu thập gì và thu thập như thế nào. Mô hình Lệnh-Thực thi-Báo cáo (Command-Execute-Report), trong đó máy chủ điều khiển từ xa client (trình duyệt).
Thiết kế này giải quyết ba vấn đề thường gặp mỗi khi viết crawler mới — tải/chặn từ backend mục tiêu, rào cản đăng nhập, và việc phải triển khai lại client mỗi khi logic thu thập thay đổi.
- Zero-Footprint: Không gửi yêu cầu trực tiếp đến máy chủ mục tiêu, mà trình duyệt của người dùng đã đăng nhập sẵn sẽ thu thập thay → có thể truy cập bên trong rào cản đăng nhập giống hệt con người, đồng thời tránh tải lên backend và bị chặn.
- Điều khiển động từ máy chủ: Bookmarklet chỉ cần đăng ký một lần là bất biến vĩnh viễn. Quy tắc thu thập (selector·action·extract) được máy chủ phát hành dưới dạng type command → thay đổi logic mà không cần triển khai lại client. Tự động sinh TS type từ một nguồn Pydantic duy nhất.
- Tạo recipe bằng cú nhấp chuột: Trong WebUI, khi nhấp vào phần tử thì selector được tạo tự động, chuỗi action(click·drag·scroll·swipe) → lưu recipe extract. Cấm eval
script(whitelist). - Nạp dữ liệu không mất mát: write-ahead (commit đồng bộ rồi trả 202) + idempotent + tự động khôi phục khi khởi động lại.
- Điều khiển tác nhân MCP: Phơi bày live pipe dưới dạng công cụ MCP (host allowlist·rate-limit·op TTL guard). Tuy nhiên, né bot và scraping hàng loạt không phải mục tiêu.
- secure-by-default: Xác thực quản trị mặc định bật (token tự động kiểu Jupyter), ranh giới thực thi eval
scripttrong phản hồi máy chủ / beacon ngoài (beacon), không dùng fingerprinting. - Không tốn chi phí·tính di động cao: SQLite + hàng đợi in-memory + một FastAPI duy nhất. 0 dịch vụ trả phí bên ngoài. Có thể tái lập không phụ thuộc HĐH bằng
uv. MIT.
Để thu thập từ các trang công khai, do ràng buộc Private Network Access của trình duyệt nên cần một URL công khai; có thể vượt qua bằng cách bật tunnel tạm thời cloudflared với ENABLE_TUNNEL=1 (đo thực tế: đã thu thập thành công từ trang tin tức thật).
Chưa có bình luận nào.