Contents

Cách lấy dữ liệu từ trang web bằng Google Sheets

Quét web là một kỹ thuật mạnh mẽ để trích xuất thông tin từ các trang web và phân tích chúng một cách tự động. Mặc dù bạn có thể thực hiện việc này theo cách thủ công nhưng đây có thể là một công việc tẻ nhạt và tốn thời gian. Các công cụ quét web giúp quá trình này nhanh hơn và hiệu quả hơn, đồng thời chi phí thấp hơn.

Thật vậy, Google Trang tính có khả năng phục vụ như một giải pháp trọn gói cho mục đích quét web nhờ chức năng IMPORTXML tích hợp sẵn. Chức năng này cho phép người dùng trích xuất thông tin từ nhiều trang web khác nhau một cách dễ dàng, sau đó có thể sử dụng thông tin này cho nhiều ứng dụng như phân tích dữ liệu, báo cáo và bất kỳ tác vụ nào yêu cầu thông tin chi tiết dựa trên dữ liệu.

Hàm IMPORTXML trong Google Trang tính

Bằng cách sử dụng chức năng sẵn có của Google Trang tính, được gọi là “IMPORTXML”, có thể trích xuất thông tin từ nhiều nguồn web khác nhau bao gồm các định dạng XML, HTML, RSS và CSV. Việc triển khai tính năng này có khả năng hợp lý hóa quá trình thu thập dữ liệu từ các trang web mà không cần phải có chuyên môn lập trình sâu rộng.

Đây là cú pháp cơ bản của IMPORTXML:

 =IMPORTXML(url, xpath_query) 

Bộ định vị tài nguyên thống nhất (URL) chỉ định địa chỉ của một trang web cụ thể mà người ta muốn trích xuất thông tin thông qua các kỹ thuật quét web.

Truy vấn XPath biểu thị ngôn ngữ chính xác được sử dụng để chọn thông tin cụ thể từ một tài liệu XML, trong đó phác thảo dữ liệu mong muốn mà người ta nhắm đến để trích xuất trong đó.

XPath, hay Ngôn ngữ đường dẫn XML, đóng vai trò như một công cụ điều hướng để khám phá và trích xuất thông tin từ các tài liệu XML, bao gồm cả HTML. Việc sử dụng ngôn ngữ này cho phép người dùng xác định vị trí cụ thể của các thành phần dữ liệu mong muốn trong cấu trúc HTML. Nắm bắt các nguyên tắc cơ bản của truy vấn XPath là rất quan trọng trong việc sử dụng hiệu quả hàm IMPORTXML.

Tìm hiểu XPath

XPath cung cấp một loạt các hàm và toán tử cho phép thao tác và lọc dữ liệu trong tài liệu HTML. Mặc dù việc cung cấp một cái nhìn tổng quan đầy đủ về cả XML và XPath nằm ngoài phạm vi của phần này nhưng tôi sẽ trình bày ở đây một số nguyên tắc cơ bản của XPath:

Việc chọn các phần tử thông qua việc sử dụng các dấu phân cách như dấu gạch chéo ("/") và dấu gạch chéo kép (//) cho phép xác định các đường dẫn cụ thể trong tài liệu HTML. Ví dụ: “/html/body/div” sẽ xác định tất cả các phiên bản của phần tử “div” nằm trong phần “body” của tài liệu HTML có trong thư mục “html”.

Để xác định và trích xuất các thuộc tính cụ thể từ một trang web nhất định, người ta có thể sử dụng nhiều tiêu chí lựa chọn khác nhau dựa trên quy ước đặt tên thuộc tính hoặc các mẫu có thể nhận dạng khác. Bằng cách sử dụng bộ chọn thích hợp, chẳng hạn như “@href” trong trường hợp này, có thể nhắm mục tiêu và truy xuất tất cả các phiên bản của thuộc tính “href” có trong tài liệu. Cách tiếp cận này cho phép truy xuất hiệu quả thông tin liên quan trong khi lọc ra dữ liệu không liên quan.

Lọc các phần tử sử dụng các vị từ được đặt trong ngoặc vuông là một cơ chế cho phép người ta chọn các phần tử cụ thể dựa trên các tiêu chí nhất định được chỉ định trong dấu ngoặc vuông. Điều này có thể được thực hiện bằng cách sử dụng các thuộc tính hoặc lớp của thẻ HTML. Một ví dụ là chọn tất cả các phần tử có thuộc tính class bằng “container” bằng cú pháp /div[@class="container"] .

XPath cung cấp một loạt các hàm, bao gồm khả năng xác định xem một phần tử nhất định có được chứa trong phần tử khác hay không bằng cách sử dụng hàm “contains()”, kiểm tra xem tên thẻ của phần tử có bắt đầu bằng một chuỗi được chỉ định hay không bằng cách sử dụng “starts-with()” và trích xuất giá trị văn bản của một phần tử bằng hàm “text()”. Các chức năng này cho phép người dùng thực hiện các thao tác được nhắm mục tiêu trên các tài liệu XML dựa trên các tiêu chí cụ thể.

Cách trích xuất XPath từ trang web

Việc trích xuất XPath của một phần tử bằng IMPORTXML có thể là một nhiệm vụ đầy thách thức đối với những người đã quen với cú pháp của hàm, có kiến ​​thức về URL của trang web mục tiêu và đã xác định được phần tử cụ thể mà họ muốn truy xuất. Quá trình này bao gồm việc xác định mã định danh duy nhất hoặc các thuộc tính được liên kết với phần tử mong muốn và sau đó sử dụng thông tin này kết hợp với công thức XPath để tạo đường dẫn thích hợp đến phần tử trong cấu trúc XML của trang web.

Người ta không cần phải ghi nhớ toàn bộ kiến ​​trúc của trang web để lấy thông tin từ trang web đó bằng IMPORTXML. Trên thực tế, mỗi nền tảng duyệt web cung cấp một công cụ hiệu quả cho phép người ta tái tạo dễ dàng XPath của bất kỳ phần tử cụ thể nào.

/vi/images/using-inspect-element-to-copy-xpath.jpg

Công cụ “Kiểm tra phần tử” cho phép trích xuất Ngôn ngữ đường dẫn XML (XPath) từ các thành phần trang web khác nhau bằng một quy trình đơn giản hóa, như chi tiết bên dưới:

Truy cập trang web mong muốn bằng ứng dụng duyệt internet ưa thích, chẳng hạn như Google Chrome hoặc Mozilla Firefox.

Truy xuất phần tử dữ liệu mong muốn bằng cách xác định vị trí của nó trong mã nguồn của trang web bằng công cụ quét web như Beautiful Soup hoặc Scrapy.

⭐Nhấp chuột phải vào phần tử.

Để truy cập tính năng “Kiểm tra phần tử”, người ta có thể chọn tính năng này từ menu ngữ cảnh thu được bằng cách nhấp chuột phải vào trang web trong khi giữ nút chuột. Hành động này sẽ khiến trình duyệt hiển thị một bảng tương tác trình bày đánh dấu HTML cơ bản của trang, với thành phần cụ thể được đề cập sẽ được phân biệt trực quan trong mã này.

trước tiên, hãy nhấp vào thành phần bạn muốn sửa đổi trong trang web của mình. Sau đó, tìm tùy chọn “Kiểm tra” trong menu ngữ cảnh xuất hiện khi nhấp chuột phải. Khi việc này hoàn tất, hãy chọn phần tử mong muốn từ danh sách các phần tử xuất hiện trong mã HTML để chỉnh sửa hoặc thao tác thêm.

Nhấp vào nút bên dưới để tạo biểu thức XPath cho phần tử đã chọn, sau đó có thể sao chép biểu thức này vào khay nhớ tạm của bạn một cách dễ dàng.

Bây giờ chúng ta đã có được thông tin cần thiết, chúng ta hãy tiến hành chứng minh ứng dụng thực tế của IMPORTXML bằng cách trích xuất URL từ một trang web nhất định.

Cách lấy các liên kết từ một trang web bằng IMPORTXML

Bằng cách sử dụng các khả năng mạnh mẽ của IMPORTXML, người ta có thể trích xuất một lượng lớn thông tin từ nhiều trang web khác nhau. Điều này không chỉ bao gồm nội dung văn bản mà còn cả các tài sản đa phương tiện như hình ảnh và video, cũng như hầu như mọi thành phần có thể tưởng tượng được có trên trang web. Trong số các thành phần này, siêu liên kết có vai trò đặc biệt nổi bật do tầm quan trọng của chúng trong việc hiểu cấu trúc và phân cấp của trang web. Bằng cách kiểm tra các đích đến mà một trang nhất định được liên kết đến, bạn có thể thu thập được những hiểu biết có giá trị về bản chất và trọng tâm của trang web đó.

Việc sử dụng IMPORTXML trong Google Trang tính cho phép trích xuất nhanh chóng các URL từ các trang web, tạo điều kiện thuận lợi cho việc phân tích tiếp theo thông qua hàng loạt chức năng có sẵn trong nền tảng.

Quét tất cả các liên kết

Để trích xuất tất cả các URL có trên một trang web cụ thể, người ta có thể sử dụng phương pháp sau:

 =IMPORTXML(url, "//a/@href")

Biểu thức XPath đã cho truy xuất mọi thuộc tính “href” được liên kết với từng phiên bản của phần tử “a”, từ đó tách biệt và thu thập thành công tất cả các siêu liên kết có trong trang web.

/vi/images/scraping-all-links-in-a-webpage-with-importxml.jpg

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href") 

Thuật toán nói trên sẽ trích xuất mọi siêu liên kết có trong một mục Wikipedia.

Việc kết hợp thực hành nhập URL của trang web vào một ô riêng biệt và tham chiếu nó trong đó là một cách tiếp cận thông minh, vì biện pháp này giúp duy trì các công thức ngắn gọn trong khi tránh sự lộn xộn hoặc phức tạp. Một chiến thuật tương tự có thể được áp dụng khi xây dựng các truy vấn XPath để điều hướng liền mạch trong bối cảnh phân tích dữ liệu.

Quét tất cả văn bản liên kết

Để truy xuất nội dung của các siêu liên kết ngoài các bộ định vị tài nguyên thống nhất tương ứng, người ta có thể sử dụng phương pháp sau:

 =IMPORTXML(url, "//a")

Yêu cầu hiện tại bao gồm việc truy xuất tất cả các thành phần, theo đó văn bản liên kết được trích xuất và URL liên quan có thể được lấy từ kết quả.

/vi/images/scraping-all-link-texts-in-a-webpage-with-importxml.jpg

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a") 

Công thức nói trên lấy văn bản liên kết trong cùng một mục Wikipedia.

Cách lấy các liên kết cụ thể từ một trang web bằng IMPORTXML

Đôi khi, cần truy xuất các trang web từ một số trang web nhất định có chứa các từ khóa nhất định hoặc nằm trong các khu vực được chỉ định của trang web.

Việc sử dụng sự hiểu biết thành thạo về XPath cho phép người ta xác định và định vị chính xác phần tử mong muốn.

Quét các liên kết có chứa từ khóa

Để trích xuất các URL chứa một từ khóa cụ thể bằng XPath, người ta có thể sử dụng hàm “contains()”:

 =IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")

Truy vấn đã cho truy xuất các giá trị href của các phần tử HTML có thuộc tính href bao gồm cụm từ tìm kiếm cụ thể, theo tiêu chí được cung cấp.

/vi/images/scrapping-specific-links-with-a-keyword-with-importxml.jpg

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")

Thuật toán nêu trên trích xuất mọi siêu liên kết được nhúng trong một phiên bản cụ thể của nội dung bằng văn bản được tìm thấy trên bách khoa toàn thư trực tuyến, trong đó thuật ngữ “bản ghi” xuất hiện trong nội dung của liên kết nói trên.

Quét các liên kết trong một phần

Để trích xuất các liên kết từ một phần cụ thể của trang web, người ta có thể sử dụng biểu thức XPath để xác định phần mong muốn. Để minh họa, hãy xem xét đoạn mã sau:

 =IMPORTXML(url, "//div[@class='section']//a/@href")

Yêu cầu nói trên liên quan đến việc lựa chọn các thuộc tính siêu liên kết được liên kết với các phần tử HTML được phân loại là “div” và có “phần” chỉ định, trong đó thuộc tính nói trên thường được sử dụng để xác định các liên kết hoặc điều hướng giữa các trang web, từ đó tạo điều kiện thuận lợi cho người dùng tương tác trên nền tảng kỹ thuật số.

/vi/images/scraping-links-within-sections-with-importxml.jpg

Công thức nói trên nhắm mục tiêu tất cả các siêu liên kết được nhúng trong một phần tử HTML có thuộc tính lớp “mw-content-container” và được lồng bên trong một phần tử vùng chứa với thuộc tính id được đặt thành “trang chính”.

 =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class='mw-content-container']//a/@href") 

Thật vậy, điều quan trọng là phải nhận ra rằng chức năng của IMPORTXML còn mở rộng ra ngoài các hoạt động quét web đơn giản. Nhóm chức năng NHẬP cho phép người dùng nhập liền mạch các bảng dữ liệu có cấu trúc trực tiếp vào Google Trang tính từ nhiều nguồn khác nhau trên internet. Tính năng này cho phép người dùng thu thập và sắp xếp thông tin một cách hiệu quả mà không cần phải nhập từng phần dữ liệu theo cách thủ công.

Mặc dù cả Google Trang tính và Microsoft Excel đều có vô số chức năng tương tự nhau, nhưng điều quan trọng cần lưu ý là nhóm chức năng NHẬP chỉ dành riêng cho Google Trang tính. Do đó, các chiến lược thay thế phải được khám phá khi cố gắng trích xuất dữ liệu từ các nguồn web vào Microsoft Excel.

Đơn giản hóa việc quét web bằng Google Trang tính

Việc sử dụng Google Trang tính kết hợp với chức năng IMPORTXML cho phép một phương pháp trích xuất thông tin từ các trang web có thể thích ứng và dễ tiếp cận, khiến phương pháp này trở thành lựa chọn phổ biến của những người muốn thu thập dữ liệu trực tuyến.

Bằng cách sử dụng thành thạo XPath và xây dựng các truy vấn hiệu quả với IMPORTXML, người ta có thể khai thác các khả năng hoàn chỉnh của nó và trích xuất thông tin có giá trị từ các nguồn internet. Do đó, việc bắt đầu trích xuất dữ liệu thông qua việc quét web sẽ nâng cao khả năng phân tích web của bạn lên một tầm cao mới.