Chào mọi người,
Dạo gần đây mình có làm một dự án cần lấy dữ liệu từ một trang web về để phân tích. Thay vì copy-paste thủ công từng chút một, mình đã thử tìm hiểu và áp dụng Google Apps Script để tự động hóa việc này. Kết quả khá khả quan nên muốn chia sẻ lại với anh em trong diễn đàn.
Về cơ bản, chúng ta sẽ sử dụng hàm UrlFetchApp.fetch(url) để lấy nội dung HTML của trang web, sau đó dùng các phương thức xử lý chuỗi hoặc biểu thức chính quy (regex) để trích xuất thông tin cần thiết. Cuối cùng, ghi dữ liệu đó vào một Google Sheet.
Ví dụ đơn giản, nếu muốn lấy tiêu đề của một trang web, bạn có thể dùng đoạn code sau:
function getWebsiteTitle() {
var url = 'https://www.example.com'; // Thay bằng URL bạn muốn lấy dữ liệu
try {
var response = UrlFetchApp.fetch(url);
var htmlContent = response.getContentText();
// Sử dụng regex để tìm thẻ
var titleMatch = htmlContent.match(/<title>(.*?)<\/title>/i);
if (titleMatch && titleMatch[1]) {
Logger.log('Tiêu đề trang web: ' + titleMatch[1]);
// Ghi tiêu đề vào Sheet đầu tiên
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
sheet.getRange(1, 1).setValue(titleMatch[1]);
} else {
Logger.log('Không tìm thấy thẻ title.');
}
} catch (e) {
Logger.log('Lỗi khi fetch URL: ' + e.toString());
}
}Tất nhiên, việc trích xuất dữ liệu phức tạp hơn sẽ đòi hỏi bạn phải hiểu cấu trúc HTML của trang web và viết regex cho phù hợp. Tuy nhiên, đây là một bước khởi đầu tuyệt vời để tự động hóa nhiều tác vụ liên quan đến dữ liệu trên web mà không cần dùng đến các công cụ phức tạp khác.
Anh em nào đã từng làm hoặc có kinh nghiệm về mảng này thì chia sẻ thêm nhé!