Cách xây dựng hệ thống giám sát tự động & Web Scraper với Lịch trình Apidog

Ashley Innocent

Ashley Innocent

15 tháng 8 2025

Cách xây dựng hệ thống giám sát tự động & Web Scraper với Lịch trình Apidog

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise
💡
Trải nghiệm sức mạnh của việc kiểm thử và giám sát API tự động với Apidog - nền tảng phát triển API tất cả trong một giúp tối ưu hóa quy trình làm việc của bạn từ thiết kế đến triển khai. Với tính năng tác vụ theo lịch nâng cao của Apidog, bạn có thể tự động hóa các kịch bản giám sát và thu thập dữ liệu phức tạp mà không cần viết một dòng mã nào.
nút

Các tác vụ theo lịch có thể làm gì?

Có quá nhiều tự động hóa mà nó có thể thực hiện. Hãy để tôi liệt kê một vài trường hợp sử dụng phổ biến trước:

Giám sát động mạng xã hội: Theo dõi các hoạt động cụ thể của người dùng thường xuyên và giám sát các chủ đề thịnh hành Thu thập và phân tích dữ liệu: Thu thập bài viết trang web, thông tin bình luận, v.v. một cách thường xuyên Tiếp thị tự động: Tự động đăng bài lên mạng xã hội theo các khoảng thời gian đã định Tự động hóa cá nhân: Nhắc nhở thời gian và quản lý tác vụ

Trước đây, việc triển khai các tác vụ tự động theo lịch này khá rắc rối. Nó thường yêu cầu thành thạo một ngôn ngữ lập trình (như Python), cấu hình máy chủ hoặc nền tảng đám mây, hoặc thậm chí viết các tập lệnh phức tạp để xử lý các tình huống khác nhau. Điều này có xu hướng là một rào cản đáng kể đối với những người không chuyên về kỹ thuật hoặc các nhà phát triển có ít thời gian.

Nhưng giờ đây, với tính năng "Tác vụ theo lịch" của Apidog, các kịch bản tự động này về cơ bản rất dễ xử lý.

Trong Apidog, việc triển khai các tác vụ hẹn giờ tự động như trình thu thập dữ liệu và giám sát có thể được chia thành các bước sau:

  1. Lấy API
  2. Phân tích dữ liệu trả về
  3. Sắp xếp các kịch bản kiểm thử
  4. Đặt tác vụ theo lịch

Hãy cùng giải thích dưới đây cách vận hành trong Apidog dựa trên các bước này. Dù nhu cầu của bạn là gì, những điều sau đây có thể mang lại cho bạn một số cảm hứng.

Lấy API

Nếu bạn muốn giám sát động thái mạng xã hội của một số nền tảng nhất định, hoặc thu thập dữ liệu từ các nền tảng đó, bước đầu tiên là phải có được API thực hiện thao tác này. Vậy câu hỏi đặt ra là, tôi có thể tìm các API này ở đâu?

Bạn có thể truy cập "nền tảng mở" chính thức để tìm hiểu xem có bất kỳ giao diện mở liên quan nào không. Đây là cách chính thức nhất. Thông thường, các trang có thể hiển thị ở giao diện người dùng sẽ có các API tương ứng được cung cấp.

Ví dụ, giả sử chúng ta muốn giám sát số lượng sao của một dự án nhất định trên GitHub, chúng ta có thể truy cập nền tảng mở của GitHub vào thời điểm này để xem có bất kỳ API liên quan nào được cung cấp không. Nếu có, chỉ cần sao chép chúng trực tiếp.

Token là bắt buộc phải có khi yêu cầu một API mở, và thường có thể được tạo trong phần quản lý của nhà phát triển.

Ngoài việc truy cập nền tảng chính thức để tìm API, bạn cũng có thể chọn bắt gói tin trong trình duyệt, hoặc tìm một số dự án mã nguồn mở trên GitHub. Phương pháp thao tác cụ thể có thể được xem trong phần mở rộng ở cuối bài viết này.

Phân tích dữ liệu trả về

Giờ đây chúng ta đã biết cách lấy API liên quan, bước tiếp theo là phân tích dữ liệu trả về và xem có thông tin hữu ích nào trong đó. Nhìn chung, các API này trả về dữ liệu ở định dạng JSON, và chúng ta cần xem xét cẩn thận ý nghĩa của từng trường.

Ví dụ, truy cập API mở dưới đây có thể lấy thông tin kho lưu trữ cho các dự án mã nguồn mở cụ thể trên GitHub:

curl -L \
   -H "Accept: application/vnd.github+json" \
   -H "Authorization: Bearer <YOUR-TOKEN>" \
   -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/repos/{owner}/{repo}

Trong đó {owner} là tên người dùng hoặc tên tổ chức của chủ sở hữu kho lưu trữ và {repo} là tên của kho lưu trữ. Để tìm thông tin này, chỉ cần nhìn vào URL của kho lưu trữ GitHub:

  1. Mở trang dự án GitHub bạn muốn xem
  2. Xem URL trong thanh địa chỉ trình duyệt, và nó có định dạng này: https://github.com/{owner}/{repo}
  3. Phần sau dấu gạch chéo đầu tiên trong URL là {owner}, phần sau dấu gạch chéo thứ hai là {repo}

Trong Apidog, bạn có thể trực tiếp sao chép nội dung lệnh cURL ở trên để tạo một yêu cầu API mới, hoặc bạn có thể tự thiết lập phương thức yêu cầu và URL trong khi thêm Token vào tiêu đề yêu cầu.

Khi bạn gửi một yêu cầu, bạn sẽ nhận được một phản hồi JSON như thế này:

{
  "id": 468576060,
  "name": "openai-cookbook",
  "full_name": "openai/openai-cookbook",
  "stargazers_count": 59366,
  ...
}

Sau khi có được dữ liệu JSON thô, bước tiếp theo là xử lý dữ liệu. Trong Apidog, chúng ta có thể sử dụng các biểu thức JSONPath hoặc viết các tập lệnh đơn giản để đạt được điều này.

Ví dụ, để sử dụng JSONPath để trích xuất các trường cụ thể, bạn có thể thêm thao tác "Trích xuất biến" trong "Bộ xử lý hậu kỳ" (Post-processors) và điền biểu thức tương ứng. Nếu bạn không quen với cách viết biểu thức, bạn có thể nhấp vào biểu tượng trong hộp nhập "Biểu thức JSONPath" để sử dụng công cụ trích xuất JSONPath làm trợ lý.

Dữ liệu được trích xuất sẽ được lưu trữ tạm thời trong các biến môi trường, có thể được gửi đến máy chủ hoặc lưu trữ trong cơ sở dữ liệu ở các bước tiếp theo.

Ngoài định dạng JSON phổ biến, còn có một loại khác trả về trực tiếp toàn bộ tài liệu HTML, điều này rất phổ biến trong các kịch bản hiển thị phía máy chủ (server-side rendering). Đối với trường hợp này, chúng ta cần sử dụng các tập lệnh để xử lý.

Trong Apidog, bạn có thể tạo một "Tập lệnh tùy chỉnh" mới trong "Bộ xử lý hậu kỳ" (Post-processors) và sử dụng phương thức fox.liveRequire để tham chiếu thư viện htmlparser2 nhằm xử lý dữ liệu định dạng HTML.

Ví dụ, nếu bạn muốn trích xuất tất cả các thẻ <article> và nội dung bên trong của chúng từ một HTML và chuyển đổi chúng sang định dạng văn bản, bạn có thể viết một tập lệnh như sau:

fox.liveRequire("htmlparser2", (htmlparser2) => {
    
    console.log(htmlparser2);

    // Chuỗi HTML (thường được đọc từ dữ liệu trả về của giao diện)
    const htmlString = `
    <html>
        <body>
        <article>
            <h1>Tiêu đề</h1>
            <p>Đây là một đoạn văn.</p>
            <p>Một đoạn văn bản khác.</p>
        </article>
        <footer>Nội dung chân trang</footer>
        </body>
    </html>
    `;

    // Phân tích tài liệu
    const document = htmlparser2.parseDocument(htmlString);

    // Sử dụng DomUtils để tìm thẻ <article>
    const article = htmlparser2.DomUtils.findOne(elem => elem.name === "article", document.children);

    // Chuyển đổi nội dung trong <article> thành đoạn HTML hoàn chỉnh
    if (article) {
        const articleHTML = htmlparser2.DomUtils.getOuterHTML(article);
        console.log(articleHTML);
    } else {
        console.log("Không tìm thấy thẻ <article>.");
    }
})

Việc xử lý nội dung định dạng HTML thông qua tập lệnh sẽ không được tìm hiểu quá sâu ở đây. Bạn có thể đơn giản hiểu đây là "thao tác DOM" - bạn có thể hỏi AI để biết chi tiết cụ thể.

Sắp xếp các kịch bản kiểm thử

Với các API đã sẵn sàng và dữ liệu đã được phân tích, bước tiếp theo là sắp xếp các kịch bản kiểm thử trong kiểm thử tự động.

Trong Apidog, bạn có thể tạo một kịch bản kiểm thử trong kiểm thử tự động và nhập các yêu cầu API đã chuẩn bị vào đó.

Nếu bạn cần chèn dữ liệu đã xử lý vào cơ sở dữ liệu, bạn có thể tạo một "Thao tác cơ sở dữ liệu" mới trong "Bộ xử lý hậu kỳ" (Post-processors) và chèn dữ liệu đã xử lý vào cơ sở dữ liệu thông qua các lệnh SQL. Các lệnh SQL hỗ trợ đọc giá trị từ các biến môi trường, ví dụ:

INSERT INTO monitoring_data (project_name, star_count, updated_time) 
VALUES ('{{project_name}}', {{star_count}}, NOW())

Ngoài ra, bạn có thể lưu trữ dữ liệu đã xử lý thông qua API - tức là, viết API của riêng bạn để lưu dữ liệu vào máy chủ, hoặc gửi dữ liệu đến các nền tảng bên thứ ba thông qua Webhook.

Ví dụ, nếu tôi muốn gửi dữ liệu đã xử lý đến Feishu (Lark), tôi có thể thêm một bước kiểm thử mới vào kịch bản kiểm thử và sử dụng API Webhook do Feishu cung cấp để gửi tin nhắn. Trong quá trình này, bạn có thể đọc kết quả thực thi của các bước trước đó thông qua "Giá trị động" (Dynamic Values), giúp việc xử lý dữ liệu thuận tiện hơn.

Nếu bạn cần lặp lại một nhóm dữ liệu, hoặc để các trường trả về đáp ứng các điều kiện cụ thể trước khi tiếp tục thực thi, bạn cũng có thể thêm "Điều kiện kiểm soát luồng" (Flow Control Conditions) vào các bước kiểm thử.

Sau khi sắp xếp kịch bản kiểm thử hoàn tất, bạn có thể chạy kiểm thử để xem hiệu quả. Kiểm tra xem có lỗi nào trong toàn bộ kịch bản kiểm thử không và xác nhận xem dữ liệu có được truyền lại thành công không. Nếu không có vấn đề gì với kịch bản kiểm thử đã sắp xếp, bạn có thể tiến hành bước tiếp theo - thiết lập các tác vụ theo lịch!

Thiết lập tác vụ theo lịch

Trong Apidog, việc thiết lập các tác vụ theo lịch cực kỳ đơn giản. Tuy nhiên, điều kiện tiên quyết để sử dụng các tác vụ theo lịch là bạn đã triển khai một Runner trên máy chủ. Bạn có thể tham khảo hướng dẫn chi tiết về quy trình cài đặt và cấu hình Runner.

Giả sử bạn đã triển khai Runner, giờ đây bạn có thể thêm các tác vụ theo lịch vào các kịch bản kiểm thử đã sắp xếp trước đó để chúng thực thi đúng lịch trình, đạt được việc giám sát tự động.

Trong kiểm thử tự động của Apidog, tìm mô-đun "Tác vụ theo lịch", sau đó tạo một tác vụ theo lịch mới. Trong giao diện cấu hình, bạn sẽ thấy các tùy chọn sau:

Sau khi thiết lập và lưu, các kịch bản kiểm thử thuộc tác vụ theo lịch này sẽ chạy thường xuyên theo chu kỳ thực thi đã đặt, và chúng ta đã đạt được mục tiêu giám sát tự động theo lịch.

Mở rộng

Trong phần "Lấy API" ở trên, ngoài việc tìm API trên các nền tảng mở chính thức, bạn cũng có thể trực tiếp bắt gói tin trong trình duyệt.

Dưới đây là một ví dụ:

Giả sử chúng ta muốn giám sát các chủ đề thịnh hành trên Weibo. Chúng ta có thể mở trang thịnh hành của Weibo trong trình duyệt, sau đó nhấn F12 hoặc Ctrl + Shift + I để mở công cụ dành cho nhà phát triển, và chuyển sang tab Network. Làm mới trang, bạn sẽ thấy một loạt các yêu cầu. Tìm yêu cầu lấy dữ liệu thịnh hành, nhấp chuột phải và sao chép dưới dạng cURL. Sau đó, mở Apidog, tạo một giao diện mới, và dán cURL bạn vừa sao chép vào hộp nhập liệu. Apidog sẽ tự động phân tích nó cho chúng ta - cực kỳ tiện lợi!

Ngoài việc bắt gói tin, một số nhà phát triển bên thứ ba có thể đã đảo ngược kỹ thuật (reverse-engineered) một số API dịch vụ nhất định. Bạn có thể tìm kiếm trên GitHub và sử dụng chúng trực tiếp nếu cần.

Kết luận

Bài viết này kết thúc nội dung. Tôi hy vọng nó có thể mang lại cho bạn một số cảm hứng để sử dụng tính năng tác vụ theo lịch của Apidog nhằm thực hiện một số thao tác tự động thú vị. Nếu bạn có bất kỳ ý tưởng hoặc thực hành hay nào, đừng ngần ngại chia sẻ chúng trong cộng đồng người dùng Apidog. Dù là mẹo sử dụng cá nhân hay ý tưởng giải quyết các vấn đề khó khăn - mọi thứ đều được hoan nghênh!

nút

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API