Case studies·

Hướng Dẫn: Cào Dữ Liệu Website Đa Trang với uProc và n8n

uProc đã tiết kiệm thời gian và tài nguyên kỹ thuật bằng cách sử dụng n8n để thu thập và xử lý dữ liệu từ một trang web nhiều trang

Hướng Dẫn: Cào Dữ Liệu Website Đa Trang với uProc và n8n

uProc đã tiết kiệm thời gian và tài nguyên kỹ thuật bằng cách sử dụng n8n để thu thập và xử lý dữ liệu từ một trang web nhiều trang.

Miquel Colomer tự nhận mình là một “người đam mê công nghệ thông tin, dữ liệu và mã nguồn mở”. Anh cũng là người sáng lập uProc (và là người tạo ra uProc node), một công ty cung cấp các giải pháp dữ liệu như thu thập, làm sạch và tự động hóa.

Một trong các dự án của anh liên quan đến việc thu thập và xử lý dữ liệu từ một trang web nhiều trang – một nhiệm vụ anh đã hoàn thành bằng n8n. Hãy tìm hiểu về các thử thách phổ biến trong việc web scraping, cách Miquel xây dựng quy trình làm việc low-code cho trường hợp sử dụng này và lời khuyên của anh khi bắt đầu với tự động hóa quy trình.

Trường hợp sử dụng: Thu thập thông tin ngân hàng

uProc tạo ra các công cụ đơn giản hóa việc truy cập dữ liệu, thu thập dữ liệu (về cá nhân, công ty, sản phẩm, v.v.), và sử dụng Internet như một nguồn dữ liệu. Trong một dự án, Miquel phải tạo hai công cụ để thu thập dữ liệu liên quan đến ngân hàng: dữ liệu tài chính theo mã Swift và mã Swift theo số tài khoản IBAN.

Lợi ích của việc sử dụng Internet làm nguồn dữ liệu là nó cung cấp một lượng dữ liệu khổng lồ, vì vậy Miquel có thể tìm thấy thông tin mà anh cần. Tuy nhiên, khi sử dụng thông tin này trong ứng dụng của mình, anh đã gặp phải một số thử thách.

Thử thách trong web-scraping

Khi cố gắng thu thập dữ liệu từ Internet, Miquel thường gặp phải ba thử thách chính:

  • Dữ liệu phân tán ở nhiều nguồn khác nhau, điều này khiến việc thu thập và duy trì trở nên khó khăn.
  • Dữ liệu có sẵn ở các định dạng khác nhau (ví dụ: HTML, RSS, CSV, XML), khiến việc kết hợp và xử lý trở nên phức tạp.
  • Dữ liệu đôi khi đã lỗi thời, điều này khiến việc xây dựng các ứng dụng đáng tin cậy và hữu ích trở nên khó khăn.

Cuối cùng, Miquel đã tìm thấy mã Swift mà anh cần cho ứng dụng của mình tại https://www.theswiftcodes.com. Ở bước tiếp theo, anh cần thu thập dữ liệu này theo cách có cấu trúc. Ban đầu, anh sử dụng các script Python với các thư viện web-crawling chuyên dụng như Scrapy.

Mặc dù các script có thể hoàn thành nhiệm vụ, việc viết mã đụng phải công việc lặp đi lặp lại và mất nhiều thời gian, vì nó bao gồm việc chọn thẻ và bộ chọn đúng, định dạng và xử lý dữ liệu sao cho có thể sử dụng trong ứng dụng cuối cùng.

Để tránh việc phải viết mã dài dòng thủ công, Miquel đã chuyển sang tự động hóa quy trình với n8n.

Giải pháp low-code cho việc scraping trang web nhiều trang

Miquel đã xây dựng một quy trình làm việc low-code 22 nút workflow để thu thập dữ liệu từ các trang web tĩnh có phân trang. Quy trình này trích xuất dữ liệu từ mỗi trang quốc gia trên website https://www.theswiftcodes.com/browse-by-country/ và lưu trữ thông tin thu thập được vào MongoDB.

Hình 1: uProc-web-scraping-workflow.png

Để thực hiện các nhiệm vụ riêng lẻ trong quá trình web scraping, quy trình này sử dụng hai nút thường xuyên (MongoDBuProc) và mười nút lõi:

  • Nút Execute Command (để tự động tạo thư mục cache cục bộ trước khi bắt đầu quá trình web scraping và tránh việc thu thập lại các trang đã scrape)
  • Nút HTTP Request (để truy cập dữ liệu từ website https://www.theswiftcodes.com)
  • Nút HTML Extract (để trích xuất nội dung mong muốn từ website dựa trên các thẻ HTML của chúng)
  • Nút Function và Function Item (để chạy mã JavaScript tùy chỉnh, ví dụ, thiết lập các trang bổ sung để scrape)
  • Nút Set (để thiết lập các trường cần thiết trước khi chuyển dữ liệu)
  • Nút IF (để lọc thông tin theo logic điều kiện, ví dụ, kiểm tra xem mã Swift đã tồn tại trong cơ sở dữ liệu hay chưa)
  • Nút Read Binary File và Write Binary File (để đọc và ghi dữ liệu thu thập từ website)
  • Nút Split In Batches (để lặp qua dữ liệu)

Với quy trình này, Miquel không chỉ hoàn thành dự án của mình mà còn tiết kiệm được thời gian và tài nguyên quý giá bằng cách tự động hóa công việc lập trình lặp đi lặp lại.

Cách bắt đầu với tự động hóa quy trình

Các công cụ tự động hóa quy trình như n8n giúp bạn thiết kế các quy trình tự động mạnh mẽ, qua đó tăng năng suất và giảm lỗi con người. Bạn có thể kết hợp các ứng dụng, dịch vụ và chức năng lõi để tự động hóa các công việc nhỏ phổ biến, tăng cường quy trình làm việc với vài dòng mã JavaScript và thậm chí tạo ra các sản phẩm hỗ trợ tự động hóa.

Sử dụng các giải pháp no-code hoặc low-code để tạo MVP hoặc các công việc nhanh chóng. Tôi tránh lập trình, chỉ lập trình những gì tôi cần.

Lời khuyên của Miquel dành cho bất kỳ ai muốn sử dụng tự động hóa quy trình là:

Hãy sử dụng trí tưởng tượng của bạn để tạo ra dự án phụ. Hãy nghĩ về một vấn đề bạn cần giải quyết và thử giải quyết nó bằng n8n.


Dưới đây là hướng dẫn đơn giản để bắt đầu với N8nHosting:

  1. Truy cập n8nhosting.app – Mở trang web để khám phá các tùy chọn hosting.
  2. Chọn gói hosting phù hợp với nhu cầu của bạn – Lựa chọn từ các gói hosting có sẵn dựa trên yêu cầu của bạn.
  3. Hoàn tất quá trình đăng ký và thanh toán – Làm theo các bước đơn giản để đăng ký và thanh toán để bắt đầu.

Khi hoàn tất, bạn sẽ sẵn sàng để lưu trữ các quy trình n8n và bắt đầu tự động hóa!