Rất mong các bạn giúp đỡ 1 lần nữa (về việc lấy dữ liệu chứng khoán trực tuyến) :D (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Bh với buổi tối thì nó chạy bằng nhau. Hay bác cho e xin cái bảng reeal time đó trc nhé :D, nếu có vấn đề về thời gian nó cập nhật thì e làm phiền bác sau :p:p:p
Nó không nhảy như web được, hình như sau vài phút nó mới thay đổi, bạn sài đỡ code này xem:
PHP:
Sub a()
Dim hreq As Object, html As Object, tag_table As Object
Dim ncol As Long, nrow As Long
Set hreq = CreateObject("winhttp.winhttprequest.5.1")
Set html = CreateObject("htmlfile")
URL = "https://markets.businessinsider.com/index/realtime-chart/dow_jones"
With hreq
    .Open "GET", URL, False
    .send
    html.body.innerhtml = .responsetext
End With
Set tag_table = html.getelementsbytagname("table")(2)
For nrow = 0 To tag_table.Rows.Length - 1
    For ncol = 0 To tag_table.Rows(1).Cells.Length - 1
        Cells(nrow + 1, ncol + 1) = tag_table.Rows(nrow).Cells(ncol).innertext
    Next
Next
Set hreq = Nothing: Set html = Nothing
Application.OnTime Now() + TimeValue("00:00:30"), "a"
End Sub
 
Nó không nhảy như web được, hình như sau vài phút nó mới thay đổi, bạn sài đỡ code này xem:
PHP:
Sub a()
Dim hreq As Object, html As Object, tag_table As Object
Dim ncol As Long, nrow As Long
Set hreq = CreateObject("winhttp.winhttprequest.5.1")
Set html = CreateObject("htmlfile")
URL = "https://markets.businessinsider.com/index/realtime-chart/dow_jones"
With hreq
    .Open "GET", URL, False
    .send
    html.body.innerhtml = .responsetext
End With
Set tag_table = html.getelementsbytagname("table")(2)
For nrow = 0 To tag_table.Rows.Length - 1
    For ncol = 0 To tag_table.Rows(1).Cells.Length - 1
        Cells(nrow + 1, ncol + 1) = tag_table.Rows(nrow).Cells(ncol).innertext
    Next
Next
Set hreq = Nothing: Set html = Nothing
Application.OnTime Now() + TimeValue("00:00:30"), "a"
End Sub
Lâu vậy ah bác :(, có thể nhanh bằng tốc độ cập nhật trên web ko ạ
 
Có bác nào đi qua thì giúp e với ạ, ko biết tý j luôn :(
 
Muốn nhanh như WEB thì là bất khả kháng, vì WEB đó là nguồn, Muốn cải thiện nữa thì phải liên hệ với Server chính và lấy thông tin (hay họ cung cấp) từ gốc
 
Muốn nhanh như WEB thì là bất khả kháng, vì WEB đó là nguồn, Muốn cải thiện nữa thì phải liên hệ với Server chính và lấy thông tin (hay họ cung cấp) từ gốc
:(, ko có cách nào ah bác, e nghĩ là khi nó đã cập nhật trên web rồi thì sau đó mình có thể cập nhật vào excel dc chứ :(
 
:(, ko có cách nào ah bác, e nghĩ là khi nó đã cập nhật trên web rồi thì sau đó mình có thể cập nhật vào excel dc chứ :(
Nó cập nhập thường xuyên nhưng mã nguồn nó không đổi liền, mấy phút sau nó mới thay đổi, nó dùng websocket để cập nhập dữ liệu và trả về dưới dạng nhị phân để thay đổi trực tiếp trên web chứ không thay đổi mã nguồn, có thể nó chạy javascript nhưng để tìm ra đoạn đó thì chua quá, nếu có thể tìm được thì không chắc đã chạy được , chưa kể còn phải dịch ngược Binary nữa, mấy cái object chỉ để lấy mã nguồn web, nó không đổi thì cũng vậy, chức năng data from web của excel cũng chỉ lấy được như vậy thôi.
 
Nó cập nhập thường xuyên nhưng mã nguồn nó không đổi liền, mấy phút sau nó mới thay đổi, nó dùng websocket để cập nhập dữ liệu và trả về dưới dạng nhị phân để thay đổi trực tiếp trên web chứ không thay đổi mã nguồn, có thể nó chạy javascript nhưng để tìm ra đoạn đó thì chua quá, nếu có thể tìm được thì không chắc đã chạy được , chưa kể còn phải dịch ngược Binary nữa, mấy cái object chỉ để lấy mã nguồn web, nó không đổi thì cũng vậy, chức năng data from web của excel cũng chỉ lấy được như vậy thôi.
:(:(:(:(:( buồn quá ah
 
Lần chỉnh sửa cuối:
Lâu vậy ah bác :(, có thể nhanh bằng tốc độ cập nhật trên web ko ạ
Cái Dow Jones này biết bao nhiêu trang hỗ trợ, biết bao nhiêu ngôn ngữ hỗ trợ, ứng dụng thì khỏi nói. Sao bạn không bước chân vào Ngôn ngữ lập trình thay vì VBA.
Hoặc bạn có thể tìm tải về một ứng dụng lấy dữ liệu chứng khoán nó sẽ xuất ra file cho bạn.
Mục đích của bạn lấy dữ liệu về để tính giao động, lệch, tăng giảm hay để làm gì nhỉ?
Và muốn nhanh thì trang phải hổ trợ API. Và bạn phải dùng Ngôn Ngữ Lập Trình Nodejs / Python / Java / Selenium ...
tìm trang hổ trợ API ngay thôi.
Nếu muốn hiển thị trên màn hình máy tính để nó nhảy lên nhảy xuống, tăng tăng giảm giảm thì dùng Rainmeter.
Cái này nhanh
 
Cái Dow Jones này biết bao nhiêu trang hỗ trợ, biết bao nhiêu ngôn ngữ hỗ trợ, ứng dụng thì khỏi nói. Sao bạn không bước chân vào Ngôn ngữ lập trình thay vì VBA.
Hoặc bạn có thể tìm tải về một ứng dụng lấy dữ liệu chứng khoán nó sẽ xuất ra file cho bạn.
Mục đích của bạn lấy dữ liệu về để tính giao động, lệch, tăng giảm hay để làm gì nhỉ?
Và muốn nhanh thì trang phải hổ trợ API. Và bạn phải dùng Ngôn Ngữ Lập Trình Nodejs / Python / Java / Selenium ...
tìm trang hổ trợ API ngay thôi.
Nếu muốn hiển thị trên màn hình máy tính để nó nhảy lên nhảy xuống, tăng tăng giảm giảm thì dùng Rainmeter.
Cái này nhanh
Mình chỉ biết mỗi VBA thôi vì mình vốn là dân xây dựng. Mình cần dữ liệu này để vẽ đồ thị trên Excel, theo từng giây, tại đa phần biểu đồ trên các đều biểu diễn thep phút hoặc dạng nến.
 
Mình chỉ biết mỗi VBA thôi vì mình vốn là dân xây dựng. Mình cần dữ liệu này để vẽ đồ thị trên Excel, theo từng giây, tại đa phần biểu đồ trên các đều biểu diễn thep phút hoặc dạng nến.
Web có rồi xem trực tiếp lấy về làm chi
 
Mình muốn chủ động tạo dạng đồ thị mình muốn xem trên excel, đồ thị trên web là nó chạy theo nhịp hàng phút, còn mình muốn chạy theo giây cơ
Như đã nói trước đó VBA rất khó làm được. Bạn cần biết Javascript (NodeJS) để viết Extentions get dữ liệu bằng Chrome hoặc Tuyệt nhất là viết một chương trình sử dụng Selenium. Bạn có thấy web của bạn cần chạy nó ở ngay trên Chrome. Tất cả gửi vào Excel. Tốc độ get / 1 giây của bạn sẽ được đáp ứng. Ngôn ngữ Javascript rất dễ học . 3 ngày là biết căn bản.
Lý do vì sao như vậy:
Vì Web cập nhật nhanh bởi nó sử dụng cơ chế RealTime / RunTime giống như bạn chat Facebook.
VBA dù cho có API đi chăng nữa cũng phải chờ gửi đi một yêu cầu. Và chờ được trả lời

Muốn làm giàu bạn bỏ công học một chút không gì là khó!
 
Như đã nói trước đó VBA rất khó làm được. Bạn cần biết Javascript (NodeJS) để viết Extentions get dữ liệu bằng Chrome hoặc Tuyệt nhất là viết một chương trình sử dụng Selenium. Bạn có thấy web của bạn cần chạy nó ở ngay trên Chrome. Tất cả gửi vào Excel. Tốc độ get / 1 giây của bạn sẽ được đáp ứng. Ngôn ngữ Javascript rất dễ học . 3 ngày là biết căn bản.
Lý do vì sao như vậy:
Vì Web cập nhật nhanh bởi nó sử dụng cơ chế RealTime / RunTime giống như bạn chat Facebook.
VBA dù cho có API đi chăng nữa cũng phải chờ gửi đi một yêu cầu. Và chờ được trả lời

Muốn làm giàu bạn bỏ công học một chút không gì là khó!
Ok bạn :(
 
Lần chỉnh sửa cuối:
Thôi bạn ạ :). Bạn có thể cho mình xin tài liệu về việc sử dụng selenium dc ko. Mình đang tìm hiểu về nó :)
Tìm Selenium Webdriver thôi. Chọn một ngôn ngữ lập trình học để dùng Selenium.
Để sử dụng được Selenium thì:
1. Thông qua Ngôn Ngữ Lập Trình ( NodeJS / Python / C# / Java / Kotlin ( Mới Mạnh mẽ Em của Java )) ( 1 - 3 ngày ) (Dễ nhất là Python)
2. Selenium Webdriver ( 2 giờ học ), Selenium sẽ thông qua Chrome Webdriver (Chrome) , Gecko Driver (Firefox ) , ...( Edge ) (Mấy cái này không cần học)
Với Ngôn Ngữ Lập Trình GoLang ( của Google ) không cần biết Selenium
Với VBA không bỏ công viết Hàm, Chart, ....Nhưng dùng Internet Explore nên khá Chuối
Hoặc lập trình Nhúng Cef, nhúng Chrome vào Ứng dụng.
 

Bài viết mới nhất

Back
Top Bottom