Cách sử dụng Google Sheets để trích xuất dữ liệu web với công thức importXML

Nội dung được viết bởi Bến Hà Trương

Bạn có biết rằng, bạn có thể tạo một công cụ web scraping đơn giản chỉ bằng một vài thao tác trên Google Sheets hay không? Trong bài viết này, chúng ta sẽ khám phá cách thu thập, trích xuất dữ liệu web đơn giản bằng một số công thức đặc biệt từ Google Sheets.

Cách sử dụng Google Sheets để trích xuất dữ liệu web cho một tác giả cụ thể

Ví dụ bạn cần tìm danh sách các bài đăng từ một tác giả cụ thể. Mục đích là để xác định xem tác giả đó có thu hút được nhiều lượt xem trang hay không. Sẽ mất rất nhiều thời gian nếu bạn mở từng link một để thống kê, thay vào đó, hãy sử dụng công thức Google Sheets bên dưới.

Để minh họa ví dụ này, chúng ta sẽ lấy một vài bài viết từ tờ New York Times.

1. Sao chép url một bài báo ngẫu nhiên từ trang web mà bạn muốn trích xuất, dán vào bảng tính của bạn, trong ô A1.

Sao chép url bài báo

2.Điều hướng đến trang web, trong ví dụ này là New York Times:

Điều hướng đến trang web

Bước này mục đích giúp chúng ta biết được trang New York Times gắn nhãn tác giả trên trang web như thế nào, từ đó có thể tạo một công thức để sử dụng trong tương lai.

3. Di chuột qua dòng chữ của tác giả và nhấp chuột phải để "Inspect Element" hiển thị menu và nhấp vào như được hiển thị trong ảnh chụp màn hình sau:

nhấp chuột phải để

4. Trong cửa sổ bảng điều khiển dành cho nhà phát triển mới, có một dòng mã HTML mà chúng ta cần quan tâm và đó là dòng được đánh dấu:

JENNIFER MEDINA
 

Chúng ta sẽ sử dụng hàm IMPORTXML trong Google Trang tính, với đối số thứ hai (được gọi là “xpath-query”) truy cập vào phần tử HTML cụ thể ở trên.

Truy vấn xpath //span[@class='byline-author'], tìm kiếm các phần tử span có tên lớp là “byline-author”, rồi trả về giá trị của phần tử đó, là tên của tác giả mà chúng ta cần.

Sao chép công thức này vào ô B1, bên cạnh URL:

=IMPORTXML(A1,"//span[@class='byline-author']")

Sau đây là kết quả

m kiếm cơ bản trên web bằng cách sử dụng importXML trong Google sheets

Như vậy, bạn đã biết cách kiếm cơ bản trên web bằng cách sử dụng importXML trong Google sheets. Phần tiếp theo, chúng ta sẽ thử một ví dụ khó hơn một chút.

Cách sử dụng Google Sheets để trích xuất dữ liệu web cho nhiều tác giả

Tương tự như ví dụ bên trên, nhưng lần này chúng ta sẽ thử thách với những bài đăng có nhiều tác giả. Với một bài đăng có nhiều tác giả, công thức ở bước 4 như trên vẫn hoạt động, nhưng sẽ trả về cả hai tên trong các ô riêng biệt, tên này nằm dưới tên kia:

Hai tác giả duyệt web bằng importXML

Nếu dữ liệu của bạn được cấu trúc theo hàng (tức là danh sách dài các URL trong cột A), bạn sẽ muốn điều chỉnh công thức để hiển thị cả tên tác giả trên cùng một hàng.

Về cách lựa chọn cấu trúc của dữ liệu trong Trang tính, bạn vui lòng xem thêm bài viết So sánh Bảng tính và Sơ sở dữ liệu: nên sử dụng định dạng bảng nào? của chúng tôi để xem định dạng bảng tính nào tối ưu hơn cho mục đích sử dụng dữ liệu của bạn.

Để hiển thị tất cả tên tác giả trong cùng một hàng, chúng ta sử dụng công thức Index như sau:

=INDEX(IMPORTXML(A1,"//span[@class='byline-author']"),1)

Trong công thức này, đối số thứ hai là 1, như vậy trong cột B chỉ hiển thị tác giả đầu tiên. Tiếp theo chúng ta sẽ tạo cột C cho tác giả thứ 2 và bạn có thể tạo thêm các cột mới cho nhiều tác giả hơn.

=INDEX(IMPORTXML(A1,"//span[@class='byline-author']"),2)

Hai trang web tác giả trên cùng một hàng
 

Lưu ý rằng các trang web có cấu trúc HTML khác nhau, do đó, công thức phải được sửa đổi một chút để tìm thông tin bằng cách tham chiếu thẻ HTML cụ thể, có liên quan. Vậy nên bạn cần thực hiện từ bước 1 chứ không đơn giản sử dụng cùng công thức ở bước 4 cho mọi trang web.

Cách sử dụng hàm IMPORTHTML để quét các bảng trên trang web

Trong ví dụ thứ 3 này, chúng ta sẽ sử dụng hàm IMPORTHTML để quét các bảng trên trang web Wikipedia. Bạn hãy sử dụng công thức sau đây:

=importhtml(A1,"table",2)

để cho ra kết quả như hình bên dưới

sử dụng hàm IMPORTHTML để quét các bảng

Việc tìm số thứ tự của bảng (trong ví dụ này là 2) liên quan đến một chút thử và sai, kiểm tra các giá trị bắt đầu từ 1, cho đến khi bạn nhận được kết quả mong muốn.

Lưu ý, công thức này cũng hoạt động đối với danh sách trên các trang web, trong trường hợp đó bạn thay đổi tham chiếu "table" trong công thức thành "list".

Cách sử dụng hàm dụng hàm IMPORTHTML để nhập dữ liệu Facebook vào Google Sheets

Dưới đây là một ví dụ nâng cao hơn của hàm IMPORTHTML. Chúng ta sẽ viết một công thức để trích xuất dữ liệu facebook của bạn vào trang tính.

Hãy bắt đầu nhập url trang Facebook trên điện thoại di động của bạn trong ô A1. Url sẽ có dạng:

https://www.mobile.facebook.com/Gitihovietnam

hoặc biến thể khác là

https://www.m.facebook.com/Gitihovietnam

Sau đó sử dụng công thức sau:

=INDEX(REGEXEXTRACT(REGEXEXTRACT(LOWER(INDEX(IMPORTXML(A1,"//@content"),2)),"([0-9km,.]+)(?: likes)"),"([0-9,.]+)([km]?)"),,1) * SWITCH(INDEX(REGEXEXTRACT(REGEXEXTRACT(LOWER(INDEX(IMPORTXML(A1,"//@content"),2)),"([0-9km,.]+)(?: likes)"),"([0-9,.]+)([km]?)"),,2),"k",1000,"m",1000000,1)

Công thức IMPORT của Google Sheets vô cùng mạnh mẽ và linh hoạt. Bạn có thể đọc thêm hướng dẫn nhập số liệu thống kê trên mạng xã hội vào Google Sheets, để biết cách sử dụng hàm IMPORTHTML trích suất dữ liệu từ 16 nền tảng mạng xã hội khác nhau. Từ đó, bạn sẽ có đủ số liệu để phân tích mạng xã hội hoặc quản lý mạng xã hội của mình.

Nếu bạn quản lý nhiều kênh khác nhau, bạn có thể sử dụng các kỹ thuật này để thiết lập chế độ xem chính (dashboard), hiển thị tất cả các chỉ số của bạn ở một nơi. Với hàm IMPORT, Google sheets sẽ trả về số lượng người theo dõi (hoặc số lượt thích trang) cho một kênh nhất định, nhưng bạn có thể điều chỉnh chúng để trả lại các chỉ số khác chỉ với một vài thao tác đơn giản.

Hy vọng với bài viết này, bạn đã biết thêm một vài thủ thuật hữu ích với hàm IMPORTHTML trong Google Sheets, giúp bạn dễ dàng trích suất dữ liệu bạn cần từ các trang web. 

Google sheets - công cụ thay thế hoàn hảo cho Excel có lẽ đã quá quen thuộc với hầu hết chúng ta, đặc biệt là dân văn phòng. Nhưng bạn có biết, Google Sheets có khoảng 900 triệu người dùng, nhưng không phải ai cũng biết sử dụng thành thạo những tính năng hữu ích từ những cái cơ bản nhất.

Để giúp đỡ bạn trên hành trình chinh phục công cụ làm việc “quốc dân” này, Gitiho đã cho ra mắt khóa học Google Sheets từ Cơ bản đến Nâng cao, công cụ thay thế Excel chỉ với 45 bài giảng và 9 giờ học, bạn đã hòan toàn có thể làm chủ công cụ này.

Giờ đây, bạn hoàn toàn có thể tự tin phân tích và xử lý dữ liệu trên Google Sheet, lập bảng biểu, báo cáo trực quan và hơn thế nữa. Và chắc chắn rằng, bạn sẽ được sếp và đồng nghiệp “yêu” hơn đấy!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông