Nhập bảng HTML vào Google Trang tính

Giả sử bạn đã có được nội dung tuyệt vời dưới dạng bảng hoặc danh sách trên một trang web. Mặc dù bạn có thể trực tiếp thử sao chép và dán nội dung này vào bảng tính của mình để phân tích sau, nhưng việc này không chỉ tốn thời gian mà còn có thể dẫn đến các lỗi tiềm ẩn. Giải pháp thay thế tốt hơn là tìm ra cách cạo dữ liệu và nhập dữ liệu đó vào nền tảng lưu trữ ưa thích của bạn

Quá trình cạo này không yêu cầu đào tạo nâng cao, đặc biệt nếu bạn đã quen thuộc với các công thức của Google Trang tính. Ví dụ: IMPORTDATA và IMPORTXML là các hàm tích hợp trong Google Trang tính cho phép bạn nhập dữ liệu từ các nguồn bên ngoài. Hàm IMPORTHTML trong Google Trang tính cho phép bạn nhập dữ liệu từ một bảng hoặc danh sách có thể thao tác cũng như cập nhật dữ liệu đó bằng cách làm mới dữ liệu theo định kỳ

Trong bài viết này, bạn sẽ tìm hiểu cách thức hoạt động của hàm IMPORTHTML, hiểu cú pháp của công thức IMPORTHTML và cách sử dụng nó để nhập dữ liệu từ một trang web. Bạn có thể tìm giải pháp khắc phục ở phần cuối trong trường hợp chức năng không hoạt động bình thường

Nhập bảng HTML vào Google Trang tính

Bắt đầu với lớp ngay hôm nay

Chia sẻ các phần của Google Trang tính của bạn, theo dõi, xem xét và phê duyệt các thay đổi cũng như đồng bộ hóa dữ liệu từ các nguồn khác nhau – tất cả chỉ trong vài giây

Chúng ta đều biết ứng dụng Google Sheets đã trở nên tháo vát như thế nào trong cuộc sống hàng ngày của chúng ta. Mặc dù nó cực kỳ tốt với tất cả các nhu cầu về bảng tính cơ bản và nâng cao, nhưng nó cũng cho phép chúng tôi kết nối với thông tin bên ngoài một cách dễ dàng. Chẳng hạn, nếu chúng ta cần nhập một bảng HTML của web vào Google Trang tính, bảng đó có một hàm gốc được gọi là công thức IMPORTHTML. Đây là cú pháp

IMPORTHTML(url, truy vấn, chỉ mục)

  • url – đây là địa chỉ (liên kết/URL) tới trang HTML trên web, nơi đặt bảng hoặc danh sách mà chúng tôi đang muốn nhập. Đây có thể là một chuỗi URL đủ điều kiện như “https. // vi. wikipedia. org/wiki/Demographics_of_the_world”. Hoặc nó có thể là một tham chiếu đến một ô (như B1) nơi lưu trữ URL
  • truy vấn – đây sẽ là "danh sách" hoặc "bảng" tùy thuộc vào cấu trúc HTML nào chứa dữ liệu mà chúng tôi đang cố gắng nhập
  • chỉ mục – số chỉ mục xác định duy nhất danh sách hoặc bảng trong trang HTML. Xin lưu ý rằng các chỉ mục cho cả danh sách và bảng đều được xử lý riêng. Cả bảng và danh sách đều có thể tồn tại với cùng một số chỉ mục

Ví dụ. nhập bảng HTML web vào Google Trang tính

Hãy xem xét hình ảnh dưới đây. B3 là ô mà chúng ta đang nhập công thức IMPORTHTML. Trên trang web nơi URL (đã đề cập ở trên) đưa chúng tôi đến, chúng tôi khá quan tâm đến bảng thứ hai. Do đó, chúng tôi sẽ sử dụng "bảng" cho tham số truy vấn và 2 cho tham số chỉ mục

Google Sheets cung cấp một chức năng gọi là ImportHTML để nhập dữ liệu từ một bảng hoặc danh sách trong trang HTML. Bạn có thể sử dụng chức năng này để tự động lấy dữ liệu vào Google Sheet rồi vào Geckoboard

Bước đầu tiên là lấy dữ liệu bạn cần trong Google Trang tính bằng cách sử dụng ImportHTML. Khi ở đó, bạn chỉ cần sử dụng nguồn dữ liệu Bảng tính của chúng tôi để hiển thị nó trên bảng điều khiển Geckoboard của bạn. Bài viết này tập trung vào bước đầu tiên

Để nhập dữ liệu từ một bảng hoặc danh sách trong một trang web vào Google Trang tính bằng chức năng ImportHTML, dữ liệu cần phải được

  • Sẵn có trên lần tải đầu tiên của trang web

  • Có sẵn công khai (điều này có nghĩa là không yêu cầu ủy quyền và/hoặc thông tin đăng nhập)

Ngoài ra, nếu bạn cảm thấy thoải mái khi sử dụng các công cụ dành cho nhà phát triển của trình duyệt, bạn có thể kiểm tra xem chức năng NhậpHTML có hoạt động với dữ liệu bạn muốn sử dụng hay không

Ghi chú. Các tiện ích được cung cấp bởi bảng tính bằng chức năng Nhập dữ liệu làm mới khoảng. mỗi 15 phút. Nếu điều này không đủ nhanh cho nhu cầu của bạn, bạn có thể chạy tập lệnh và đặt khoảng thời gian làm mới của riêng mình

Hàm và cú pháp

Hàm được viết là =IMPORTHTML(URL, query, index). Và cú pháp yêu cầu các yếu tố sau

  • URL - URL của trang để kiểm tra, bao gồm giao thức (e. g. http. //)

    • Giá trị cho URL phải được đặt trong dấu ngoặc kép hoặc là tham chiếu đến ô chứa văn bản thích hợp

  • query - Hoặc là "danh sách" hoặc "bảng" tùy thuộc vào loại cấu trúc chứa dữ liệu mong muốn

  • index - Chỉ mục, bắt đầu từ 1, xác định bảng hoặc danh sách nào được xác định trong nguồn HTML sẽ được trả về

Cách nhập bảng

Trong ví dụ này, chúng tôi lấy dữ liệu từ một bảng cho biết 1 đô la Mỹ trị giá bao nhiêu bằng một số đơn vị tiền tệ khác vào Google Trang tính

Để nhập một bảng, hãy làm theo các bước sau

  1. Tạo một Google Trang tính mới hoặc tạo một tab mới trên một trang tính hiện có và đặt tên cho nó

  2. Tiếp theo, thêm công thức sau vào ô A1 và điều chỉnh trường index nếu cần

    =IMPORTHTML("https://www.bloomberg.com/markets/currencies/cross-rates","table",1)

Mẹo

Nếu trang web bạn đang nhập bao gồm nhiều bảng, hãy mở Công cụ dành cho nhà phát triển của bạn và chạy mã sau trong bảng điều khiển. var i = 1; [].forEach.call(document.getElementsByTagName("table"), function(x) { console.log(i++, x); });. Để tìm index được liên kết với bảng bạn muốn hiển thị, hãy di chuột qua các kết quả cho đến khi bảng bạn muốn hiển thị được tô sáng. Số hiển thị trong kết quả là số bàn bạn sẽ cần sử dụng

Nhập bảng HTML vào Google Trang tính

Cách nhập danh sách

Trong ví dụ này, chúng tôi lấy dữ liệu từ danh sách hiển thị các giá trị và niềm tin của Geckoboard vào Google Trang tính

Để nhập danh sách, hãy làm theo các bước sau

  1. Tạo một Google Trang tính mới hoặc tạo một tab mới trên một trang tính hiện có và đặt tên cho nó

  2. Tiếp theo, thêm công thức sau vào ô A1 và điều chỉnh trường index nếu cần

    =IMPORTHTML(URL, query, index)0

Không bắt buộc. Tăng tốc thời gian làm mới cho ImportHTML

Các tiện ích được cung cấp bởi bảng tính bằng chức năng NhậpHTML làm mới khoảng. mỗi 15 phút. Nếu điều này không đủ nhanh cho nhu cầu của bạn – và tài khoản G Suite của bạn cho phép điều đó – thì bạn có thể viết một tập lệnh có thể giảm thêm thời gian làm mới

Chúng tôi khuyên bạn nên mở Google Trang tính mới trước tiên vì các bước sau sẽ ghi đè lên bất kỳ thông tin nào bạn có trong Google Trang tính hiện có

Bước 1. Viết kịch bản

  1. Trong Google Trang tính mới, chọn menu Công cụ và nhấp vào Trình chỉnh sửa tập lệnh. Một tab Google Apps Script mới sẽ mở ra

  2. Thay thế mã mặc định bằng tập lệnh sau

    function getData() { 
      var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(""); 
      var queryString = Math.random(); 
      var cellFunction = '=IMPORTHTML("?","table",)';    sheetName.getRange('').setValue(cellFunction); 
    }
  3. Thay thế =IMPORTHTML(URL, query, index)1 bằng tên trang tính của bạn (tên tab, không phải tên tệp)

  4. Thay thế =IMPORTHTML(URL, query, index)2 bằng URL của trang web của bạn, e. g. =IMPORTHTML(URL, query, index)3

  5. Thay thế =IMPORTHTML(URL, query, index)4 bằng vị trí bảng trên trang, đ. g. =IMPORTHTML(URL, query, index)5

  6. Thay thế =IMPORTHTML(URL, query, index)6 bằng ô mà bạn muốn đặt câu lệnh nhập của mình, e. g. =IMPORTHTML(URL, query, index)7

    Nhập bảng HTML vào Google Trang tính

  7. Trong trường tiêu đề, thêm tên cho dự án của bạn

  8. Tiếp theo, chọn File, sau đó chọn Save

Nếu bạn tò mò về lý do tại sao tập lệnh thêm một số ngẫu nhiên vào cuối URL của chúng tôi - nếu không có nó, trang web sẽ được lưu vào bộ đệm và chức năng ngừng nhập dữ liệu mới nhất

Bước 2. Thiết lập trình kích hoạt

Để tạo trình kích hoạt cho chức năng của bạn, hãy làm theo các bước sau

  1. Nhấp vào trình đơn kích hoạt của dự án

    Nhập bảng HTML vào Google Trang tính

  2. Nhấp vào nút + Thêm Trình kích hoạt ở góc dưới cùng bên phải của trang

    Nhập bảng HTML vào Google Trang tính

  3. Đặt trình kích hoạt cho chức năng myFunction chạy từ Head trên Nguồn định hướng thời gian được kích hoạt trên Bộ hẹn giờ phút

    Nhập bảng HTML vào Google Trang tính

  4. Sau khi bạn đặt trình kích hoạt (và để bạn không phải đợi 1 giờ để nhận dữ liệu), hãy chạy tập lệnh lần đầu tiên

    Nhập bảng HTML vào Google Trang tính

Bạn đã hoàn tất

Bây giờ bạn đã viết tập lệnh và đặt trình kích hoạt đang chạy, bạn sẽ có thể xem dữ liệu trên Google Trang tính của mình được làm mới nhanh hơn 15 phút mặc định. Điều này sẽ tiếp tục làm mới ngay cả khi Google Trang tính của bạn bị đóng

Lỗi máy chủ Google tiềm năng

Chúng tôi nhận thấy rằng một vài lần một tuần, lỗi máy chủ sẽ xảy ra ở phía Google và tập lệnh sẽ không chạy được. Theo mặc định, bạn sẽ nhận được email thông báo rằng điều này đã xảy ra. Xem xét kịch bản chạy mỗi phút trong ngày, tổng cộng là 1440 lần, một vài lần một tuần không có gì đáng lo ngại