Quét web bằng VBA

Data Scraping là gì?

Quét dữ liệu là kỹ thuật giúp trích xuất thông tin mong muốn từ trang web HTML sang tệp cục bộ có trong máy cục bộ của bạn. Thông thường, một tệp cục bộ có thể tương ứng với một tệp excel, tệp word hoặc bất kỳ tệp nào. Microsoft Ứng dụng văn phòng. Nó giúp truyền tải thông tin quan trọng từ trang web.

Việc thu thập dữ liệu trở nên đơn giản khi thực hiện một dự án dựa trên nghiên cứu hàng ngày và dự án đó hoàn toàn phụ thuộc vào internet và trang web. Để minh họa thêm về chủ đề này, chúng ta hãy lấy ví dụ về một nhà giao dịch trong ngày chạy macro excel để lấy thông tin thị trường từ trang web tài chính vào bảng excel bằng VBA.

Làm cách nào để chuẩn bị Macro Excel trước khi thực hiện Quét dữ liệu bằng Internet explorer?

Có một số điều kiện tiên quyết nhất định phải được thực hiện trên tệp macro excel trước khi bắt đầu quá trình quét dữ liệu trong excel.

Những điều kiện tiên quyết này như sau: –

Bước 1) Mở Macro dựa trên Excel và truy cập tùy chọn nhà phát triển của Excel.

Chuẩn bị Macro Excel trước khi thực hiện Quét dữ liệu bằng Internet Explorer

Bước 2) Chọn tùy chọn Visual Basic trong dải băng Nhà phát triển.

Chuẩn bị Macro Excel trước khi thực hiện Quét dữ liệu bằng Internet Explorer

Bước 3) Chèn một mô-đun mới.

Chuẩn bị Macro Excel trước khi thực hiện Quét dữ liệu bằng Internet Explorer

Bước 4) Khởi tạo một chương trình con mới

Sub test()
End sub

Mô-đun sẽ có kết quả như sau: –

Chuẩn bị Macro Excel trước khi thực hiện Quét dữ liệu bằng Internet Explorer

Bước 5) Truy cập tùy chọn tham chiếu trong tab công cụ và tham chiếu Microsoft Thư viện đối tượng HTML và Microsoft kiểm soát internet.

Các tập tin sau đây sẽ được tham chiếu đến mô-đun vì chúng giúp mở Internet Explorer và tạo điều kiện thuận lợi cho việc phát triển tập lệnh macro.

Chuẩn bị Macro Excel trước khi thực hiện Quét dữ liệu bằng Internet Explorer

Bây giờ tệp Excel đã sẵn sàng để tương tác với Internet Explorer. Bước tiếp theo sẽ là kết hợp các tập lệnh macro để hỗ trợ việc quét dữ liệu trong HTML.

Làm cách nào để mở Internet Explorer bằng Excel VBA?

Bước 1) Khởi tạo biến trong chương trình con như hiển thị bên dưới

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument

Bước 2) Để mở internet explorer bằng VBA, hãy viết tức là có thể nhìn thấy=true và báo chí F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
Ie.visible=true

Mô-đun sẽ trông như sau: –

Mở Internet Explorer bằng Excel VBA

Mở Internet Explorer bằng Excel VBA

Làm cách nào để mở trang web trong Internet explorer bằng VBA?

Dưới đây là các bước mở trang web trên Internet explorer bằng VBA

Bước 1) Sau khi bạn có thể truy cập Internet Explorer bằng Excel VBA, bước tiếp theo sẽ kết hợp việc truy cập trang web bằng VBA. Điều này được hỗ trợ bởi Navigate Attribute, trong đó URL phải được chuyển thành dấu ngoặc kép trong thuộc tính. Thực hiện theo các bước sau như được hiển thị.

Sub test()
Dim, ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate"http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE

Bước 2) – Nhấn F5 để thực hiện macro. Trang web sau sẽ được mở như hiển thị

Mở trang web trong Internet explorer bằng VBA

Bây giờ, macro excel đã sẵn sàng để thực hiện các chức năng thu thập dữ liệu. Bước tiếp theo sẽ hiển thị cách trích xuất thông tin từ Internet Explorer bằng VBA.

Làm cách nào để thu thập thông tin từ trang web bằng VBA?

Giả sử người giao dịch trong ngày muốn truy cập dữ liệu từ trang web hàng ngày. Mỗi lần người giao dịch trong ngày nhấn nút, nó sẽ tự động kéo dữ liệu thị trường vào excel.

Từ trang web trên, cần phải kiểm tra một phần tử và quan sát cách cấu trúc dữ liệu.

Bước 1) Truy cập mã nguồn HTML bên dưới bằng cách nhấn control + Shift + Tôi

<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>

Mã nguồn sẽ như sau: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document

Có thể thấy rằng dữ liệu được cấu trúc dưới dạng một Bảng HTML duy nhất. Do đó, để lấy toàn bộ dữ liệu từ bảng html, cần phải thiết kế macro thu thập dữ liệu dưới dạng bộ sưu tập.

Bộ sưu tập sau đó sẽ được dán vào excel. Để đạt được kết quả mong muốn, hãy thực hiện các bước được đề cập dưới đây: –

Bước 2) Khởi tạo tài liệu Html trong chương trình con

Mô-đun VBA sẽ trông như sau: –

Bước 3) Khởi tạo phần tử bộ sưu tập có trong tài liệu HTML

Mô-đun VBA sẽ trông như sau: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

Bước 4) Khởi tạo các ô trong bảng excel với sự trợ giúp của vòng lặp lồng nhau như được hiển thị

Mô-đun VBA sẽ trông như sau: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object

ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

Excel có thể được khởi tạo bằng cách sử dụng thuộc tính range của trang tính excel hoặc thông qua thuộc tính cells của trang tính excel. Để giảm độ phức tạp của tập lệnh VBA, dữ liệu thu thập được khởi tạo thành thuộc tính cell excel của trang tính 1 có trong sổ làm việc.

Khi tập lệnh macro đã sẵn sàng, hãy chuyển và gán nút chương trình con cho excel và thoát khỏi mô-đun VBA. Gắn nhãn nút là làm mới hoặc bất kỳ tên phù hợp nào có thể được khởi tạo cho nút đó. Trong ví dụ này, nút được khởi tạo dưới dạng làm mới.

Quét thông tin từ trang web bằng VBA

Bước 5) Nhấn nút làm mới để có được đầu ra được đề cập bên dưới

Quét thông tin từ trang web bằng VBA

Bước 6) So sánh kết quả trong excel với kết quả của internet explorer

Quét thông tin từ trang web bằng VBA

Tổng kết

  • Việc quét dữ liệu cho phép người dùng chỉ loại bỏ những thông tin mà người dùng muốn. Để tìm những công cụ tốt nhất cho mục đích này, hãy xem danh sách các công cụ quét web này có thể giúp bạn trích xuất thông tin mong muốn từ nhiều trang web khác nhau một cách hiệu quả.
  • Việc cạo có thể được thực hiện bằng cách sử dụng Internet Explorer.
  • Quá trình thu thập dữ liệu chậm hơn trong trường hợp của Internet Explorer; tuy nhiên, nó mang lại kết quả mong muốn cho người dùng.
  • Việc cạo phải được thực hiện hết sức cẩn thận và thận trọng vì nó có thể gây hại và làm hỏng hệ thống đang được sử dụng để cạo.