0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Scraping Nội Dung Cho LLM: Từ RSS đến Markdown

Đăng vào 8 tháng trước

• 3 phút đọc

Giới thiệu

Chào các bạn,

Chào mừng bạn quay trở lại với blog mới của tôi. Tôi là Shrey, người viết về phát triển phần mềm và lập trình. Trong bài viết này, tôi sẽ chia sẻ với bạn về cách scraping nội dung từ internet cho các mô hình ngôn ngữ lớn (LLM).

Tại sao cần scraping nội dung?

Scraping nội dung là một kỹ thuật quan trọng giúp thu thập dữ liệu từ nhiều nguồn khác nhau trên internet. Việc này trở nên cần thiết khi bạn muốn xây dựng các sản phẩm hoặc dịch vụ dựa trên dữ liệu từ các trang web khác nhau. Một trong những dự án mà tôi đang làm là Universo, nơi cung cấp bộ sưu tập các miền, công cụ và sản phẩm dành cho nhà phát triển.

Phương pháp scraping

Sử dụng RSS Feeds

Một trong những cách dễ dàng để bắt đầu là sử dụng RSS feeds. RSS là một định dạng tệp XML tiêu chuẩn giúp cung cấp các bản cập nhật từ các trang web và blog một cách tự động, giúp người dùng theo dõi nội dung mà không cần phải truy cập từng trang web.

javascript Copy
const response = axios.get(url.trim().toString());
return response.data;

Lưu trữ dữ liệu

Sau khi lấy dữ liệu từ các RSS feeds, bạn có thể lưu trữ chúng vào cơ sở dữ liệu để dễ dàng truy xuất và phân tích sau này.

Lặp lại quy trình

Sau khi thu thập dữ liệu, quy trình có thể được lặp lại để cập nhật thông tin mới.

Vấn đề với RSS Feeds

Tuy nhiên, không phải trang web nào cũng có RSS feeds. Nếu bạn đang điều hành một nền tảng nội dung, hãy đảm bảo thêm RSS feed vào trang của mình, vì điều này giúp cải thiện thứ hạng tìm kiếm trên Google.

Khi không có RSS Feeds

Khi không có RSS feeds, bạn sẽ cần phải scraping trực tiếp từ trang web hoặc sử dụng API của họ. Scraping có thể là một thách thức, vì nhiều trang web sử dụng tệp robots.txt để ngăn chặn bot truy cập nội dung của họ.

Ví dụ về scraping

Một đoạn mã đơn giản để scraping nội dung có thể như sau:

javascript Copy
const response = await axios.get(url.trim().toString());
const data = response.data;
const html = load(data);
return html;

Chuyển đổi nội dung sang định dạng LLM-ready

Vấn đề chuyển đổi

Khi làm việc với nội dung từ các trang web, tôi gặp phải vấn đề về việc định dạng lại nội dung cho phù hợp với các mô hình ngôn ngữ lớn (LLM). Việc sao chép và dán nội dung có thể dẫn đến định dạng không chính xác.

Giải pháp

Tôi đã phát triển một endpoint đơn giản để chuyển đổi nội dung từ bất kỳ URL nào sang định dạng markdown phù hợp cho LLM. Một số gói thư viện hữu ích bao gồm:

  • Puppeteer và Playwright cho các trang web nặng.
  • Cheerio cho các trang web tĩnh nhỏ.
  • Các gói chuyển đổi markdown.
  • Sử dụng proxy để xoay vòng địa chỉ IP.

Xử lý HTML

Khi scraping, phần khó nhất là phân tích HTML thành nội dung markdown sẵn sàng sử dụng. Bạn cần loại bỏ các phần tử không cần thiết như header, navbar, sidebar và footer. Dưới đây là ví dụ về cách loại bỏ các phần tử này:

javascript Copy
const selectorsToRemove = [...];
selectorsToRemove.forEach((sel) => {
  document.querySelectorAll(sel).forEach((el) => el.remove());
});

Những điều cần lưu ý

  • Sử dụng proxy: Để tránh bị chặn IP, tôi khuyên nên sử dụng quy trình proxy xoay vòng.
  • Tôn trọng robots.txt: Hãy luôn kiểm tra tệp robots.txt của trang web để đảm bảo bạn đang tuân thủ quy định khi thu thập nội dung.
  • Đối với các trang web nặng: Sử dụng Puppeteer cho các trang web có nhiều JavaScript như React hoặc Next.js.
  • Chọn công cụ phân tích: Cheerio vẫn là công cụ tốt nhất để phân tích các phần tử HTML.

Kết luận

Với các kỹ thuật trên, bạn có thể dễ dàng thu thập và chuyển đổi nội dung từ nhiều nguồn khác nhau trên internet. Nếu bạn muốn thử nghiệm API mà tôi đang phát triển, hãy để lại ý kiến của bạn trong phần bình luận.

Chúc bạn một ngày tốt lành và hãy kiểm tra sản phẩm của tôi, iHateReading Scrapify!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào