Hàm ImportXML sẽ giúp bạn lấy dữ liệu từ website vào Google Sheets. Dưới đây là cách dùng hàm ImportXML trong Google Sheets.

Hàm ImportXML
  • Google Sheets
  • Google Sheets cho iOS
  • Google Sheets cho Android

Google Sheets là ứng dụng bảng tính miễn phí và là một thay thế tuyệt vời cho Microsoft Excel. Google Sheets cung ứng cho người tiêu dùng rất nhiều tính năng hữu ích không kém Excel. Thậm chí, bảng tính của Google Sheets hoàn toàn có thể tự động thu thập thông tin trong những khi bạn đang say giấc. Nó còn hoàn toàn có thể tải mọi dữ liệu bạn muốn như giá hàng hóa, phân tích trang và nhiều hơn thế thế nữa ở khắp mọi nơi.

Thế nhưng nếu muốn tải số lượng lớn dữ liệu trên web, chẳng hạn như sao chép thông tin từ một bảng trực tuyến (danh sách sự kiện, bảng thống kê hay địa chỉ email nằm rải rác trên web), việc sao chép & dán chúng thật tốn thời gian và công sức phải không? Google Sheets có một lựa chọn tốt hơn cho bạn.

bạn cũng hoàn toàn có thể nhập dữ liệu từ website bất kỳ bằng một hàm nhỏ nhưng có võ mang tên ImportXML. Một khi đã nắm vững hàm ImportXML Google Sheets, công việc thu thập hàng loạt dữ liệu trên web trở thành cực kì đơn giản.

Cách dùng hàm ImportXML của Google Sheets

  • Khái niệm cơ bản về XML và HTML
  • Cách trích xuất một danh sách mã bưu điện và quận trong thành phố
  • Cách tự động sao chép địa chỉ email từ web
  • Cách dùng Regex để nhập địa chỉ Email từ web trong Google Sheets.

Khái niệm cơ bản về XML và HTML

Ngôn ngữ ghi lại XML chỉ định những bộ dữ liệu trong một website. Về thực chất, bất kỳ bộ <somethingvàgt;</somethingvàgt; – những khối xây dựng của mã nguồn web hay một tập hợp dữ liệu nhất định sẽ nằm bên trong chúng. Mã nguồn của web sẽ có một số text trong thẻ <pvàgt;aragraph – đoạn văn, đôi khi chứa <bvàgt;old – chữ in đậm và hoàn toàn có thể cả <avàgt;a link – links (được theo sau bởi </avàgt;</bvàgt;.</pvàgt;</bodyvàgt; để đóng toàn bộ thẻ).

Hàm ImportXML của Google Sheets hoàn toàn có thể tìm một bộ dữ liệu XML nào đó và sao chép dữ liệu phía bên ngoài nó. Ở ví dụ trên, nếu muốn lấy toàn bộ links trên trang, chúng ta cần yêu cầu hàm ImportXML nhập toàn bộ thông tin trong tag <avàgt;</avàgt;. Nếu muốn toàn bộ text của một web, bạn cũng hoàn toàn có thể bắt đầu bằng phương pháp lấy mọi thứ trong <bodyvàgt;</bodyvàgt; hoặc mỗi phiên bản của <pvàgt;</pvàgt;, rồi xóa dữ liệu ở những giai đoạn sau.

Cách trích xuất một danh sách mã bưu điện và quận trong thành phố

Bảng biểu trong Wikipedia là bài luyện tập ImportXML tuyệt vời. Bài viết sẽ lấy ví dụ tải toàn bộ mã bưu điện ở Edmonton, Alberta. Tìm danh sách mã bưu điện của Canada bắt đầu bằng chữ T. Mở trang đó trong cửa sổ trình duyệt mới để bắt đầu.

Xem nguồn trang

Chọn một mã bưu điện, click chuột phải vào nó và chọn Inspect để mở công cụ trình duyệt xem mã nguồn trang. những bạn sẽ thấy mỗi mã nguồn trang nằm trong một tag (xác định một ô trong bảng). Sau đó, bài viết sẽ nhập toàn bộ tag TD chứa từ Edmonton trong chúng.

Tạo một bảng tính Google Sheet trống mới. Bài viết sẽ lấy toàn bộ nội dung tag TD, gồm có <spanvàgt; và links bằng phương pháp xác định dữ liệu muốn dùng cú pháp Xpath. ImportXML lấy URL và tag bạn đang tìm làm đối số để nhập vào Google Sheets.

=importxml(“https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada”, “//td”)

những bạn sẽ nhận được kết quả như sau:

Nhập kết quả vào bảng dữ liệu

Quay lại nguồn trang, chúng ta sẽ thấy mã bưu chính được in đậm trong thẻ <bvàgt;</bvàgt;, tên thành phố links tới những bài báo Wikipedia nằm trong <avàgt;</avàgt;. Giờ hãy thử chỉ lấy links trong những ô thành phố lớn và loại bỏ những links khác (khu phố). Chỉnh sửa chúng thành hai lệnh trọng cột A và B:

=importxml(“https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada”, “//td/span/a[1]”)

=importxml(“https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada”, “//td/b[1]”)

Bạn cần tinh chỉnh kết quả một chút:

Tinh chỉnh kết quả nhận được

Hành động này giúp bạn hiểu cách cú pháp truy vấn XPath hoạt động: một thẻ chỉ cung ứng phiên bản thứ nhất của <tagvàgt; trong <parent tagvàgt;. Vì thế, td/span/a[1] cho bạn links thứ nhất trong <spanvàgt; ở mỗi <tdvàgt;. giống như như vậy, td/b[1] cho bạn text in đậm trước tiên trong những <tdvàgt; hoặc chỉ mã bưu điện ở trường hợp này.

Điều tuyệt vời là bạn cũng hoàn toàn có thể tiến hành hai truy vấn trong một hàm. Vì thế, bài viết phối kết hợp hai yêu cầu bằng một hình tượng | ở giữa:

=importxml(“https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada”, “//td/span/a[1] | //td/b[1]”)

Tuy nhiên, những bạn sẽ không nhận được cùng kết quả trước đó. Nó sẽ xen kẽ toàn bộ yêu cầu phối kết hợp vào một danh sách dài, thay cho hai cột. Nó có nhiều lợi ích nhưng không thiết yếu ở bài viết này.

Cột dữ liệu tên thành phố chính

Để chọn mã bưu chính trong những box chứa links ‘Edmonton’. Chúng ta sẽ dùng mã này:

=importxml(“https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada”, “//td[span/a=”Edmonton”]/b[1]”)

Đặt phần “search” – text đủ điều kiện thu hẹp kết quả trong dấu ngoặc vuông mà không làm tác động tới cách thức mang đến kết quả.

Toàn bộ mã code kết hợp Edmonton tương ứng

Giờ tới những tên những khu vực lân cận. Viết hàm importXML tương thích vào cột tiếp theo, lấy text sau từ “Edmonton.”

Bài viết lấy toàn bộ nội dung của span[1] và dùng dấu ngoặc đơn và chéo để phân chia nội dung, đưa “Edmonton” vào cột thứ nhất và tên khu vực lân cận vào cột sau. Sau đó, chúng ta cũng hoàn toàn có thể phối kết hợp mã bưu chính với tên tương ứng:

=importxml(“https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada”, “//td[span/a=”Edmonton”]/span[1]”)

Tiếp theo, dùng hàm Split và nối một số cột sau đó để chia tách & nhóm dữ liệu đang xử lý:

=SPLIT(concatenate(B2:J2),”(/)”)

sau cùng, đây là bảng kết quả với thông tin thiết yếu:

Bảng dữ liệu chứa các thông tin cần thiết

Cách tự động sao chép địa chỉ email từ web

Cách lấy email bằng hàm ImportXML trong Google Sheets

Bài viết sẽ hướng dẫn bạn cách lấy toàn bộ email nhân viên trên trang About | Zapier. Nhìn vào mã nguồn, những bạn sẽ thấy mọi địa chỉ email của từng thành viên đều nằm trong trường class=”email”. Khi muốn chỉ định một thuộc tính tag, dùng hàm ImportXML của Google Sheets như sau:

=importxml(“https://zapier.com/about//”, “//span[@class=”email”]”)

Cách dùng Regex để nhập địa chỉ Email từ web trong Google Sheets.

Để lấy những địa chỉ Zapier bằng phương pháp dùng “sức mạnh” của Regex, chúng ta sẽ nhập lệnh <spanvàgt; thay cho tìm class. Giờ chúng ta sẽ tiến hành nhiệm vụ này trong hai bước: Gọi thông tin từ trang Zapier vào cột thứ nhất, sau đó, phân loại email vào cột thứ hai:

=importxml(“https://zapier.com/about//”, “//span”)

=regexextract(A1, “[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-.]+.[a-zA-Z0-9-]{2,15}”)

sau cùng, chúng ta sẽ có bảng này:

Trích xuất địa chỉ email từ web

Nhớ rằng, ImportXML sẽ tự điền vào toàn bộ những cột và hàng tùy thuộc vào dữ liệu nó tìm thấy. Truy vấn regex phải được điền vào từng ô bạn muốn có kết quả. Để phối kết hợp toàn bộ lại với nhau, bạn chỉ việc dùng lệnh Regexextract là một công thức hằng số mảng (array):

=ArrayFormula(IFERROR(REGEXEXTRACT(IMPORTXML(“https://zapier.com/about//”, “//span”), “[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-.]+.[a-zA-Z0-9-]{2,15}”)))

Và đây là kết quả:

Trích xuất email bằng hàm Regex

mong muốn bài viết hữu ích với những bạn!

Có thể bạn quan tâm:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *