1. Search tool
Search Tool
  • Tổng quan
  • Bussiness | Logic
    • Nghiệp vụ & Luồng Tìm kiếm
    • Task Orchestration
    • Scraping & Execution
    • Exception & Recovery
    • Proxy Orchestration
  • Project
    • Search API
      • Tổng quan Search API
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • API Interface
        • Go - Auth
          • Đăng nhập
          • Đăng ký (Public)
        • Go - User
          • Danh sách User (Phân trang)
          • Tạo User
          • Lấy tất cả User
          • Profile cá nhân
          • Chi tiết User
          • Cập nhật User
          • Xóa User
          • Đổi mật khẩu
        • Go - System
          • Nhật ký hoạt động (Phân trang)
          • Cập nhật dữ liệu Search
          • Test Webhook receiver
        • Go - Server
          • Danh sách Server (Phân trang)
          • Tạo Server
          • Lấy tất cả Server
          • Chi tiết Server
          • Cập nhật Server
          • Xóa Server
        • Go - Tasks
          • Tạo nhiều task Search
          • Lấy tất cả task Search
          • Reset trạng thái tất cả nhiệm vụ Search
          • Tạo nhiều task Anchor Text
          • Lấy tất cả nhiệm vụ Anchor Text
          • Reset trạng thái tất cả nhiệm vụ Anchor Text
        • Go - Webhook
          • Webhook cập nhật trạng thái (Dùng WEBHOOK_KEY)
          • Lấy Proxy cho Tool
          • Lấy Proxy có thể rotate
          • Cập nhật kết quả Search
          • Kết quả rotate Proxy
          • Cập nhật kết quả Anchor Text
          • Nhận kết quả từ Tool (v2)
      • Deployment
        • Local
        • Staging
        • Product
    • Search tool
      • Tổng quan Search Tool
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • API Interface
        • Bun - Main
          • Thông tin server Bun
          • Health Check
          • Lấy file Log
        • Bun - Task
          • Danh sách Search Tasks
          • Tạo nhiều Search Tasks
          • Xóa tất cả Search Tasks
          • Xóa Search Task
          • Reset trạng thái Search
          • Reset running process
          • Danh sách Anchor Tasks
          • Tạo nhiều Anchor Tasks
          • Xóa tất cả Anchor Tasks
          • Xóa Anchor Task
          • Reset trạng thái Anchor
          • Reset running process
      • Deployment
        • Local
        • Staging
        • Product
  • Schemas
    • LoginRequest
    • ProxyRequest
    • CreateUserRequest
    • KeywordTaskRequest
    • UpdateUserRequest
    • SearchAutomationRequest
    • ChangePasswordRequest
    • CreateServerRequest
    • AnchorTextTaskRequest
  1. Search tool

Tổng quan Search Tool

Tổng Quan Vận Hành — Tool Tự Động Hóa (Bun)#

Tài liệu này mô tả sơ đồ vận hành của Thành phần Tool Tự động hóa trong hệ thống Search Tool.

1. Vai trò của Tool#

Nếu API là hệ thống điều phối, thì Tool (nằm trong tools/) đảm nhận vai trò là "Động cơ thực thi" (Automation Engine).
Hệ thống này sử dụng các trình duyệt ảo không giao diện (Headless Browser bằng Puppeteer/Elysia.js) để đóng giả làm hành vi của người dùng thật. Tool nhận Task từ API, điều khiển trình duyệt truy cập Web/Google, thực hiện cuộn trang, vượt qua các màng lọc chống bot, trích xuất dữ liệu (Data Scraping) và gọi Webhook trả kết quả về.

2. Cơ chế Ẩn danh bằng Proxy (Proxy Rotation)#

Để thu thập dữ liệu trên diện rộng mà không bị Google chặn (Rate Limit / Block IP), Tool bắt buộc phải sử dụng hệ thống Luân chuyển Proxy:
Mỗi khi bắt đầu một Task, hệ thống gọi sang một API Proxy nội bộ để xin cấp phát 1 địa chỉ IP đang rảnh.
Browser sẽ được cấu hình kết nối thông qua IP Proxy này, giúp che giấu IP gốc của máy chủ.
Nếu IP này bị Google phát hiện (yêu cầu giải Captcha), Tool sẽ hủy phiên làm việc, giải phóng IP cũ và xin kết nối IP mới.

3. Luồng hoạt động chi tiết#

Tool hỗ trợ 2 kịch bản xử lý độc lập thùy theo từng loại Task:

A. Kịch bản Keyword Search (Quét Top Từ Khóa)#

[Nhận Task]
     │
     ▼
[Xin Proxy IP]
     │
     ▼
[Khởi tạo Browser] ◄────┐
     │                  │
     ▼                  │
[Vào Google.com]        │
     │                  │
 ┌───┴───┐              │
 ▼       ▼              │
[Bị Lỗi] [Thành công]   │
 │       │              │
 │       ▼              │
 │    [Cuộn trang]      │
 │       │              │
 │       ▼              │
 │    [Thu thập DOM]    │
 │       │              │
 │       └──────────────┼──┐
 │                      │  │
 ├──(Dưới 10 lần Lỗi) ──┘  │
 │                         │
 ▼                         │
[Quá 10 lần Lỗi]           │
 │                         │
 ▼                         │
[Gọi Fallback API]         │
 │                         │
 └─────────────────────────┴─► [Gọi Webhook]
1.
Khởi tạo: Nhận Task ➔ Xin cấp [IP Proxy] ➔ Mở Web Browser ẩn danh ➔ Cấu hình Fake [User-Agent] (Device/OS).
2.
Thực thi: Điểu khiển Browser tự động truy cập, gõ từ khóa vào [Google.com].
3.
Màng lọc chống Bot (Google Check):
Bị Block (Captcha): Hủy phiên làm việc, xin cấp Proxy mới để Retry (vượt rào). Nếu xui xẻo Retry xịt quá 10 lần, Tool sẽ bật cơ chế Fallback API (chạy qua dùng Data của SearchApi.io) thay vì cố lách tiếp.
Vượt ải Thành công: Chuyển sang Bước 4.
4.
Cào dữ liệu thô (Scraping): Chạy lệnh Auto-Scroll (cuộn trang nội suy ngẫu nhiên) để đánh lừa thuật toán và kéo mồi cho mọi kết quả ẩn / quảng cáo (Lazy-load) load đủ bộ trên trang.
5.
Trích xuất thông minh (DOM Parsing): Bóc tách giao diện HTML của Google để nhặt ra: Danh sách Domain đang ở top, Vị trí xếp hạng thứ vế, Tiêu đề SEO, Đoạn mô tả đi kèm.
6.
Báo cáo: Gửi cấu trúc Dữ liệu thu được về [Webhook] trả cho phía gửi đơn.

B. Kịch bản Anchor Text Search (Dò tìm Backlink)#

[Nhận Task]
     │
     ▼
[Xin Proxy IP]
     │
     ▼
[Khởi tạo Browser] ◄────┐
     │                  │
     ▼                  │
[Vào Target Domain]     │
     │                  │
 ┌───┴───┐              │
 ▼       ▼              │
[Bị Lỗi] [Thành công]   │
 │       │              │
 │       ▼              │
 │    [Cuộn ngẫu nhiên] │
 │       │              │
 │       ▼              │
 │    [Máy quét liên kết]
 │       │              │
 │       ▼              │
 │    [Lọc bỏ link rác] │
 │       │              │
 │       ▼              │
 │    [Gọi Webhook]     │
 │                      │
 ▼                      │
[Đóng Browser, đổi IP] ─┘
 (Retry tối đa 10 lần)
1.
Mở cổng: Nhận Task -> Trải qua bước Cấp Proxy & Mở Browser giống hệt Kịch bản A -> Cắm thẳng truy cập vào [Target Domain].
2.
Kích xuất Render mồi: Cuộn ngẫu nhiên trang để đánh lừa hệ thống, ép toàn bộ các JavaScript / Quản lý quảng cáo đang cấu hình trên trang bung ra hết độ trễ giao diện.
3.
Máy quét Đa tầng (Multi-layer Parser):
Tầng 1 (Giao diện chìm/nổi): Quét mặt tiền toàn bộ thẻ cấu trúc <a> được in/lắp và đổ bóng trên giao diện Site.
Tầng 2 (Mã nguồn): Tải toàn bộ cấu trúc các file JavaScript (.js) đang nhúng vào Site đó, sử dụng Regex để bới xem có link nào bị giấu bằng Logic tự render không.
4.
Lọc thông minh (Mapping): Đem tất cả lượng URL đào móng ra ở Bước 3 qua sàng lọc. Giữ lại các đường Link khớp vị trí / chứa chuỗi Ký Tự [Anchor_Key] mà đơn hàng đưa.
5.
Dọn rác cuối: Lọc kết quả bỏ những URL lặp trùng lặp hoặc phế phẩm (Youtube URL rác).
6.
Gửi trả Webhook: Trả cấu trúc mảng danh sách trọn vẹn Link đào được.

4. Cơ chế Error Handling & Bypass (Vượt rào cơ bản)#

Đối với các tác vụ Cào dữ liệu (Scraping), tỷ lệ thất bại do hệ thống phòng thủ của phía Site đích là rất cao. Tool được trang bị các luồng xử lý ngoại lệ (Try-Catch / Backoff) như sau:
Bypass Captcha (Cơ chế đổi Proxy): Khi phát hiện bị dính Google Captcha chặn không cho tra cứu, Tool sẽ đóng lập tức trình duyệt, trả Proxy đó lại cho Pool và kéo 1 Proxy mới tinh. Cho phép Retry tối đa 10 lần.
Bypass Device OS (Chuyển đổi thiết bị giả lập): Nếu đổi IP 10 lần vẫn bị tóm, Tool sẽ thay đổi toàn diện thông tin thiết bị (User-Agent header). Ví dụ chuyển từ giả lập Google Chrome (Windows) sang Google Chrome (MacOS) hoặc thay đổi tham số màn hình Mobile sang Mobile khác để làm mới Fingerprint.
Data Filtering (Lọc nhiễu): Hệ thống được code để tự động loại trừ các định dạng không mong muốn như Link Youtube (Trừ khi Request chỉ định lấy). Nó cũng xử lý loại bỏ www để URL quy về chuẩn phân tích.
API Fallback (Phương án dự phòng): Nếu 10 lần Retry Proxy + Đổi Device kết hợp vẫn thất bại (Google xiết quá chặt), Tool có cơ chế "Fallback" là đẩy từ khóa đó đi mua kết quả từ bên thứ 3 (API của searchapi.io) làm kênh cứu cánh cuối cùng để trả kết quả cho Client.
Ngày cập nhật 2026-03-31 07:49:26
Trước
Product
Tiếp theo
Database Schema
Built with