NguyenDang95
Senior Member
Xin chào mọi người. Trong bài viết này mình xin giới thiệu đến mọi người cách thức lấy dữ liệu từ trang web bất kỳ. Trong Excel, người dùng có thể sử dụng công cụ có sẵn Power Query để lấy dữ liệu từ một trang web bất kỳ, dữ liệu trả về thông thường là HTML (ở dạng bảng), XML hoặc JSON. Tuy vậy người dùng lại không thể tinh chỉnh những loại dữ liệu nào muốn nhận hoặc chỉ muốn dữ liệu theo nhiều tiêu chí khác nhau (tham số truy vấn (query parameters) của URL hoặc Request Body), lúc này VBA sẽ là lựa chọn hoàn hảo.
Chúng ta xét một ví dụ thực tế dưới đây.
Ví dụ: Lấy dữ liệu chứng khoán theo danh mục từ trang web iboard.ssi.com.vn:
Giả sử người dùng muốn lấy dữ liệu từ trang web iboard.ssi.com với những danh mục như VN100,VN30,VNCONS:
Để tìm được nguồn cung cấp dữ liệu cho bảng trên, chúng ta thực hiện những bước sau:
Người dùng có thể tìm thấy tệp Excel chứa macro VBA đính kèm theo bài viết này.
Cập nhật:
Alo các thím, tình hình là tệp Excel mẫu ở đầu bài viết không còn sử dụng được nữa do SSI đã thay đổi API, cho nên mình quyết định viết lại hoàn toàn dưới dạng VSTO add-in để mọi người có thể tiện sử dụng.
Chúng ta xét một ví dụ thực tế dưới đây.
Ví dụ: Lấy dữ liệu chứng khoán theo danh mục từ trang web iboard.ssi.com.vn:
Giả sử người dùng muốn lấy dữ liệu từ trang web iboard.ssi.com với những danh mục như VN100,VN30,VNCONS:
Để tìm được nguồn cung cấp dữ liệu cho bảng trên, chúng ta thực hiện những bước sau:
- Từ trình duyệt web nhân Chromium bất kỳ (Edge, Chrome, Opera, v.v.), người dù nhấn phím F12 để mở Developer Tools
- Tiếp theo, chọn tab Network - Fetch/XHR, từ đây người dùng có thể tìm được nguồn dữ liệu trên bắt nguồn từ API nào.
- Dựa vào thông tin của các tab Headers, Payload và Response, người dùng tiến hành viết macro VBA tạo yêu cầu HTTP (HTTP Request) và xử lý phản hồi (Response) nhận được để trình bày dữ liệu ra Excel
Người dùng có thể tìm thấy tệp Excel chứa macro VBA đính kèm theo bài viết này.
Cập nhật:
Alo các thím, tình hình là tệp Excel mẫu ở đầu bài viết không còn sử dụng được nữa do SSI đã thay đổi API, cho nên mình quyết định viết lại hoàn toàn dưới dạng VSTO add-in để mọi người có thể tiện sử dụng.
Attachments
Last edited: