Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Nội dung được viết bởi G-LEARNING

Quét dữ liệu 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 từ hoặc để nói bất kỳ ứng dụng văn phòng nào của Microsoft. Nó giúp trong việc truyền thông tin quan trọng từ trang web.

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

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

Có một số điều kiện nhất định phải được thực hiện trên tệp macro excel trước khi đi vào quá trình xử lý dữ liệu trong excel.

Những điều kiện như sau: –

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

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Bước 2) Chọn tùy chọn Visual Basic trên thanh công cụ Nhà phát triển.

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

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

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

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

 Sub test()
 End sub 

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

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

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

Các tệp sau đây sẽ được tham chiếu đến mô-đun vì nó giúp mở trình duyệt internet và tạo điều kiện phát triển kịch bản macro.

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Bây giờ tệp Excel đã sẵn sàng để tương tác với trình duyệt internet explorer. Bước tiếp theo sẽ là kết hợp các tập lệnh macro sẽ để 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ở trình duyệt Internet Explorer bằng VBA, hãy viết  i.e. visible=true và nhấn F5.

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

Các mô-đun sẽ như sau: –

Hướng dẫn cách đơn giản quét dữ liệu web với VBA
Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Làm thế nào để mở trang web trong Internet explorer bằng VBA?

Dưới đây là các bước để mở trang web trong trình duyệt Internet bằng VBA

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

 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 để chạy macro. Trang web sau sẽ được mở như hiển thị sau

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Bây giờ, macro excel đã sẵn sàng để thực hiện các chức năng lọc. Bước tiếp theo sẽ hiển thị cách trích xuất thông tin từ trình thám hiểm internet bằng VBA.

Làm thế nào để loại bỏ thông tin từ trang web bằng VBA?

Giả sử người giao dịch mỗi 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 nhấn nút bấm, nó sẽ tự động kéo dữ liệu vào excel.

Từ trang web trên, cần phải kiểm tra dữ liệu và cách dữ liệu được cấu trúc.

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

<table class="">
<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 

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

Bộ sưu tập sau đó sẽ được dán vào excel. Để đạt được, kết quả mong muốn thực hiện các bước 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 bộ tài liệu 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 ô excel với sự trợ giúp của vòng lặp lồng nhau

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 trong phạm vi của trang excel hoặc thông qua thuộc tính ô của trang excel. Để giảm độ phức tạp của tập lệnh VBA, dữ liệu thu thập được tạo thành thuộc tính ô của sheet 1 .

Khi tập lệnh macro đã sẵn sàng, chuyển và gán chương trình con cho excel và thoát khỏi mô-đun của VBA. đặt tên mới cho nó. Như ví dụ sau

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Bước 5) Nhấn nút refresh để xuất dữ liệu

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

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

Hướng dẫn cách đơn giản quét dữ liệu web với VBA

Tóm lược:

  • Việc lọc dữ liệu cho phép người dùng chỉ loại bỏ thông tin mà người dùng muốn.
  • Lọc có thể được thực hiện bằng cách sử dụng internet explorer.
  • Quá trình lọc chậm hơn internet explorer, tuy nhiên, nó mang lại kết quả mong muốn cho người dùng.
  • Việc lọc phải được thực hiện một cách cẩn thận và thận trọng tuyệt đối vì nó có thể gây hại và làm hỏng hệ thống đang được sử dụng để lọc.

Để tìm hiểu thêm nhiều kiến thức về VBA, mời bạn tham dự khóa học VBAG01 – Tuyệt đỉnh VBA – Viết code trong tầm tay Đây là khóa học rất hữu ích dành cho bạn, giúp bạn hiểu một cách bài bản về VBA và cách sử dụng VBA, ứng dụng VBA vào công việc để tăng hiệu quả. Hãy cùng khám phá nào:

Đánh giá bài viết này

Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu chỉ dùng Excel, bạn sẽ thường xuyên phải OT đến mỗi kỳ làm báo cáo, stress vì sai dữ liệu do nhập thủ công, hay gặp vấn đề các hàm load chậm do dữ liệu quá nặng,...

Có lẽ bạn đã từng nghe ở đâu đó về công cụ lập trình VBA trên Excel, giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,...

Nhưng bạn không dám nghĩ một ngày nào đó mình sẽ dùng VBA bởi vì mình không biết lập trình, sửa code và gỡ lỗi mã. Tin mình đi, bạn hoàn toàn có thể thành thạo công cụ này ngay cả khi không giỏi Excel, không biết lập trình với khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho.

Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập khiến mọi thao tác thủ công trên Excel gần như được loại bỏ hoàn toàn. 

Hãy nhấn vào Học thử hoặc Đăng ký ngay để cảm nhận sự “vi diệu” mà VBA mang lại cho công việc của bạn nhé!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông