Ứng dụng ImportHTML, ImportXML, ImportFeed, ImportData

Công dụng:

3 function này được sử dụng để cập nhật dữ liệu từ các source => một cách đơn giản để crawl dữ liệu website (cập nhật giá sản phẩm của đối thủ cạnh tranh, thông tin thị trường, làm affiliate…)

Vấn đề:

Trong nhiều trường hợp, 3 hàm này trả lại thông báo: “#N/A Imported content is empty”. Vậy data source như thế nào thì phù hợp với 3 functions này:

Yêu cầu của data source:

+ Cả 3 function này đề đòi hỏi data source cung cấp dữ liệu tĩnh (static data) => để kiểm tra dữ liệu có phải là static data không, chúng ta dùng Chrome Developer tool (F12) => Ctrl + Shift + P => Disable javascript => rồi refresh lại webpage. Tất cả các dữ liệu vẫn còn hiển thị là static data & có thể sử dụng 3 function trên để lấy dữ liệu.

+ Với ImportXML: có thể lấy dữ liệu dạng XML hoặc biến thể (XHTML)

IMPORTXML("URL"; "//ul[@class='primary']//li")

Chú ý:

+ Đường dẫn Xpath dẫn đến giá trị cần lấy phải là duy nhất (unique) trong source code thì kết quả trả lại mới chính xác.

importxml

=> Dựa trên ví dụ trên ảnh, để lấy được giá “2,150,000”, có thể viết như sau:

 importxml ("URL"; "//ins//span[@class='woocommerce-Price-amount amount']")

Nếu như đường dẫn trên là unique thì sẽ ra duy nhất một giá trị “2,150,000”. Còn nếu giá trị trả lại gồm có nhiều kết quả thì chúng ta cần mở rộng đường dẫn Xpath ra lớp html bao ngoài đến khi nào đường dẫn là unique (div/div/p/ins/span).

+ ImportXML chỉ hỗ trợ Xpath 1.0 (cách copy Xpath từ browser console F12 không sử dụng được).

Ref:

+ https://zoomspring.com/blog/learn-importxml-tutorial/

+ https://www.distilled.net/blog/distilled/guide-to-google-docs-importxml/

+ Hàm ImportData: có thể lấy dữ liệu dạng csv hoặc tsv (không phụ thuộc vào đuôi của file dữ liệu)

ARRAY_CONSTRAIN(IMPORTDATA("URL"); 8000; 20)

+ ImportFeed: có thể lấy dữ liệu dạng ATOM/RSS

+ ImportHTML: có thể lấy dữ liệu HTML dạng bảng (table) hoặc dạng danh mục (list)

IMPORTHTML("URL"; "TABLE"; ROW(A1)-1)

If kết quả của function này không phải là #N/A thì có thể sử dụng function kết hợp với Xpath để lấy kết quả mong muốn.