Katana thu thập dữ liệu nhanh, tập trung vào việc thực thi trong tự động hóa

Nội dung

    Để sử dụng katana (công cụ web crawler của ProjectDiscovery) trong OpenCode, bạn có thể làm theo hướng dẫn chi tiết dưới đây. Quy trình này bao gồm hai phần chính: cài đặt công cụ katana và tích hợp plugin opencode-katana vào OpenCode.

    1. Cài đặt Katana
    Yêu cầu hệ thống
    • Go: Katana yêu cầu phiên bản Go mới nhất (khuyến nghị Go 1.26+, tối thiểu Go 1.18).
    • Mac Mini M4 (Apple Silicon): Hoàn toàn tương thích.
    Các cách cài đặt
    Cách 1: Cài đặt qua Go (khuyến nghị)
    Mở Terminal và chạy lệnh:
    go install github.com/projectdiscovery/katana/cmd/katana@latest
    Lưu ý: Đảm bảo $GOPATH/bin đã có trong $PATH của bạn. Nếu chưa, thêm vào bằng lệnh:
    echo ‘export PATH=$PATH:$HOME/go/bin’ >> ~/.zshrc
    source ~/.zshrc
    (Do macOS sử dụng zsh mặc định, nên dùng ~/.zshrc thay vì ~/.bashrc)
    Cách 2: Tải binary có sẵn
    Tải file binary cho macOS từ trang Release của Katana và giải nén vào thư mục trong $PATH.
    Cách 3: Dùng Docker
    docker pull projectdiscovery/katana:latest
    docker run projectdiscovery/katana:latest -u //example.com
    Kiểm tra cài đặt
    katana -h
    Nếu hiển thị danh sách các flag và hướng dẫn sử dụng, bạn đã cài đặt thành công.

    2. Cài đặt Plugin opencode-katana cho OpenCode
    opencode-katana là plugin cung cấp adapter để tích hợp Katana với OpenCode.
    Cài đặt plugin
    Trong terminal, chạy lệnh sau:
    opencode plugin opencode-katana
    Hoặc nếu bạn muốn cài đặt từ source code (phát triển):
    git clone //github.com/Dandi007/katana
    cd katana
    # Thêm đường dẫn vào opencode.json
    Sau đó thêm vào file opencode.json của bạn:
    json
    {
    “plugin”: [“/path/to/katana”] }
    Cấu hình plugin
    Plugin hỗ trợ các biến môi trường sau:

    Biến môi trường
    Mô tả
    KATANA_PARITY_ROOT
    Ghi đè đường dẫn gốc của Katana (mặc định tự động phát hiện)
    KATANA_DISABLED_PLUGINS
    Danh sách plugin cần vô hiệu hóa (cách nhau bằng dấu phẩy), ví dụ: wiki,retrieval
    Ví dụ:
    export KATANA_DISABLED_PLUGINS=”wiki,retrieval”

    3. Cách sử dụng Katana trong OpenCode
    Sau khi cài đặt plugin, OpenCode sẽ tự động nhận diện và cho phép bạn sử dụng các hook và skill của Katana:
    • SessionStart hooks: Tự động inject context (guide, work-folder, retrieval, wiki)
    • PostToolUse hooks: Xác thực tài liệu FPA (First Principles Analysis)
    • Skills: Tất cả các skill được expose để OpenCode có thể phát hiện và sử dụng
    Ví dụ sử dụng Katana trực tiếp
    Bạn có thể chạy Katana từ terminal hoặc thông qua OpenCode để crawl web:
    # Crawl một URL duy nhất
    katana -u //example.com

    # Crawl nhiều URL
    katana -u //example.com,//google.com

    # Crawl từ file danh sách
    katana -list urls.txt

    # Sử dụng headless mode (cho JavaScript-heavy sites)
    katana -u //example.com -headless -system-chrome

    # Giới hạn độ sâu crawl (mặc định 3)
    katana -u //example.com -depth 5
    Kết hợp với OpenCode Agent
    Trong OpenCode, bạn có thể yêu cầu AI agent sử dụng Katana thông qua các lệnh tự nhiên, ví dụ:
    “Hãy crawl //example.com và trích xuất tất cả các endpoint API”
    AI agent sẽ gọi Katana với các tham số phù hợp và trả về kết quả.

    4. Tóm tắt quy trình nhanh
    1 Cài đặt Go (nếu chưa có): Tải từ //go.dev/dl/
    2 Cài đặt Katana: go install github.com/projectdiscovery/katana/cmd/katana@latest
    3 Cài đặt plugin OpenCode: opencode plugin opencode-katana
    4 Kiểm tra: katana -h và mở OpenCode để xác nhận plugin đã được load
    5 Sử dụng: Chạy các lệnh crawl hoặc yêu cầu AI agent thực hiện

    Tài liệu tham khảo
    ProjectDiscovery Katana Documentation
    GitHub – projectdiscovery/katana
    opencode-katana trên npm
    Nếu bạn gặp bất kỳ vấn đề gì trong quá trình cài đặt, hãy kiểm tra lại phiên bản Go (go version) và đảm bảo đã thêm đúng đường dẫn $GOPATH/bin vào $PATH.

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    Chat with us
    Hello! How can I help you today?