Tải kết quả xổ số miền Bắc về Excel

Liên hệ QC
Status
Không mở trả lời sau này.
Vậy là đã giải quyết được chưa bạn
Vì b rep vào vấn đề này nên m rep vấn đề này trước.
1.//. M thì dùng bình thường theo code của b. chỉ chỉnh sửa thêm chút vòng lặp ngày trên excel đó là vấn đề ko phải ngày nào cũng quay như miền bắc. nên minh thêm vài ô có như sau: để hạn chế vòng lặp đó là tính ngày tiếp theo dựa theo lịch quay bằng cách tính "Thứ hiện tại" (ở ô I2).
2.//. Vấn đề bài #75 ạ.
Vì dữ liệu ketqua1 ko có độ chính xác cao nên m ko muốn sử dụng ở đó. Và hiện đang muốn sử dụng ở minhngoc.net
Sau mò mẫm trên mạng có copy và chỉnh sửa được đoạn code sau
Mã:
Option Explicit
Sub GetData_MinhNgoc()
    Dim http As New XMLHTTP60, html As New HTMLDocument
    Dim posts As Object, post As Object, elem As Object
    Dim row As Long, col As Long
    row = 5     'Tự đặt
    With http
        '.Open "GET", "https://www.minhngoc.net/ket-qua-xo-so/mien-trung/binh-dinh/26-08-2021.html", False
        .Open "GET", "https://www.minhngoc.net/ket-qua-xo-so/mien-trung/binh-dinh/" & MinhNgoc.Range("H3") & ".html", False
        .send
        html.body.innerHTML = .responseText
    End With
    Set posts = html.getElementsByClassName("box_kqxs_content")(0)
    With MinhNgoc
        For Each post In posts.Rows
            For Each elem In post.Cells
                col = col + 1: Cells(row + 1, col).NumberFormat = "@": Cells(row + 1, col) = elem.innerText
            Next elem
            col = 0
            row = row + 1
        Next post
    End With
End Sub

Nhưng mà đoạn này nó ko lấy được cả ngày.(Nếu dùng Class: "bkqtinhmiennam" thì có ngày nhưng xuất dữ liệu khá là xấu và lệch lạc.)
Và dữ liệu số ở mỗi giải sẽ được "Nối lại" chứ không phân tách thành Cột riêng.
Phần tiếp theo e chưa biết xử lý ra sao cả. vì code m toàn đi copy rồi sửa là chính. Nhiều đoạn ko có hiểu.
B (hoặc ai đó) có thể sửa tiếp giúp m được ko.
Cảm ơn mọi người!!!
 
24-07-2020 10MZ-2MZ-4MZ-5MZ-6MZ-8MZ
03-10-2020 4QL-2QL-13QL-7QL-11QL-15QL
31-01-2021 11XS-10XS-3XS-6XS-7XS-1XS
15-03-2021 8ZR-13ZR-15ZR-9ZR-6ZR-1ZR

mình chỉ đang phân tích đoán đuôi 2 số còn chưa có kết quả tốt. Những cái mã của kết quả này theo mih biết thì trúng thưởng ko cần so các mã này nữa r. chỉ cần trúng số thôi.
 
24-07-2020 10MZ-2MZ-4MZ-5MZ-6MZ-8MZ
03-10-2020 4QL-2QL-13QL-7QL-11QL-15QL
31-01-2021 11XS-10XS-3XS-6XS-7XS-1XS
15-03-2021 8ZR-13ZR-15ZR-9ZR-6ZR-1ZR

mình chỉ đang phân tích đoán đuôi 2 số còn chưa có kết quả tốt. Những cái mã của kết quả này theo mih biết thì trúng thưởng ko cần so các mã này nữa r. chỉ cần trúng số thôi.
Đây chỉ là ví dụ cụ thể cho b thôi. Còn tại sao cái này t đưa lên vì t cũng có dùng cái này nữa. Vội vàng là lướt nhanh lấy chạm lọc cho 3 cửa.
B có thể kiểm tra 2 link ở miền nam làm ví dụ. chưa kể miền trung. chỉ lướt nhẹ vài năm là sai với thiếu loạn xạ lên. Do dữ liệu web ko phải dữ liệu Get nhé :D
 
Đây chỉ là ví dụ cụ thể cho b thôi. Còn tại sao cái này t đưa lên vì t cũng có dùng cái này nữa. Vội vàng là lướt nhanh lấy chạm lọc cho 3 cửa.
B có thể kiểm tra 2 link ở miền nam làm ví dụ. chưa kể miền trung. chỉ lướt nhẹ vài năm là sai với thiếu loạn xạ lên. Do dữ liệu web ko phải dữ liệu Get nhé :D
mình hiểu là ý bạn muốn chỉ cái sai data nhưng nếu tính chi ly hơn thì dữ liệu miền bắc trước 2017 là do mấy e gái xinh đẹp quay tay lồng ra số. Sau năm 2017 thì toàn bộ chuyển sang quay bằng máy hết, còn miền trung và nam thì mình ko biết. 2 nguồn tạo ra số đã khác nhau nên dữ liệu phân tích chỉ là có cái data để dựa vào thôi với những ai thik phân tích con số như mình. nhiều người phân tích theo sổ mơ, ngũ hành, lịch can chi đủ cả. Với mình thì phân tích xoso nó tạo đam mê với VBA chứ đánh vẫn trượt là chính
 
Vì b rep vào vấn đề này nên m rep vấn đề này trước.
1.//. M thì dùng bình thường theo code của b. chỉ chỉnh sửa thêm chút vòng lặp ngày trên excel đó là vấn đề ko phải ngày nào cũng quay như miền bắc. nên minh thêm vài ô có như sau: để hạn chế vòng lặp đó là tính ngày tiếp theo dựa theo lịch quay bằng cách tính "Thứ hiện tại" (ở ô I2).
2.//. Vấn đề bài #75 ạ.
Vì dữ liệu ketqua1 ko có độ chính xác cao nên m ko muốn sử dụng ở đó. Và hiện đang muốn sử dụng ở minhngoc.net
Sau mò mẫm trên mạng có copy và chỉnh sửa được đoạn code sau
Mã:
Option Explicit
Sub GetData_MinhNgoc()
    Dim http As New XMLHTTP60, html As New HTMLDocument
    Dim posts As Object, post As Object, elem As Object
    Dim row As Long, col As Long
    row = 5     'Tự đặt
    With http
        '.Open "GET", "https://www.minhngoc.net/ket-qua-xo-so/mien-trung/binh-dinh/26-08-2021.html", False
        .Open "GET", "https://www.minhngoc.net/ket-qua-xo-so/mien-trung/binh-dinh/" & MinhNgoc.Range("H3") & ".html", False
        .send
        html.body.innerHTML = .responseText
    End With
    Set posts = html.getElementsByClassName("box_kqxs_content")(0)
    With MinhNgoc
        For Each post In posts.Rows
            For Each elem In post.Cells
                col = col + 1: Cells(row + 1, col).NumberFormat = "@": Cells(row + 1, col) = elem.innerText
            Next elem
            col = 0
            row = row + 1
        Next post
    End With
End Sub

Nhưng mà đoạn này nó ko lấy được cả ngày.(Nếu dùng Class: "bkqtinhmiennam" thì có ngày nhưng xuất dữ liệu khá là xấu và lệch lạc.)
Và dữ liệu số ở mỗi giải sẽ được "Nối lại" chứ không phân tách thành Cột riêng.
Phần tiếp theo e chưa biết xử lý ra sao cả. vì code m toàn đi copy rồi sửa là chính. Nhiều đoạn ko có hiểu.
B (hoặc ai đó) có thể sửa tiếp giúp m được ko.
Cảm ơn mọi người!!!
Không hiểu bạn lấy cả ngày là ntn? ngày là giá trị bạn truyền vào rồi còn gì.
 
Không hiểu bạn lấy cả ngày là ntn? ngày là giá trị bạn truyền vào rồi còn gì.
code trên tham số truyền vào ko có độ chính xác.
vì nếu như miền nam đang nghỉ quay chẳng hạn. nó vẫn get ra cái ngày cuối cùng quay rồi đưa vào.
Nó tương tự cái vấn đề bẫy lỗi khi nghỉ quay ý b.
 
code trên tham số truyền vào ko có độ chính xác.
vì nếu như miền nam đang nghỉ quay chẳng hạn. nó vẫn get ra cái ngày cuối cùng quay rồi đưa vào.
Nó tương tự cái vấn đề bẫy lỗi khi nghỉ quay ý b.
thế thì bạn thêm 1 điều kiện check thôi:
If html.getElementsByClassName("ngay")(0).getElementsByTagName("a")(0).innerText = Format(ngaycancheck, "dd/mm/yyyy") Then
' thuc hien code
end if
 
mọi người có thể tham khảo giúp mình về file này dc ko.mình ko biết tí gì?nhờ ae chỉ giúp giùm.này là mình bỏ tiền ra mua nhé ae
 

File đính kèm

thế thì bạn thêm 1 điều kiện check thôi:
If html.getElementsByClassName("ngay")(0).getElementsByTagName("a")(0).innerText = Format(ngaycancheck, "dd/mm/yyyy") Then
' thuc hien code
end if
m đang viết tách hẳn lại rồi. đang xử lý tách giải. :D. nhưng mà ko biết có bị dính loop khi ko.
Nếu ko được thì m sẽ tham khảo đoạn của b. Cảm ơn. Nhưng cái ngày kia nãy t viết nó ko có cho cái (0) vào được.
 
Bỏ tiền ra mua sao không kêu bên bán hướng dẫn sử dụng luôn thể vậy bạn?
có mình cũng biết sử dụng thôi.
thứ 1 là mình không hiểu cách hoạt động của nó thế nào?
thứ 2 là mình muốn nâng cấp nó theo công thức của mình?
mà giờ hiểu biết cũng có hạn thôi bạn.vì đam mê bộ môn này.nếu được thì cùng nhau phát triển thôi bạn.
mình cũng chơi thử rồi.nói chung là nó hay trượt khung ngày 3.
 
có mình cũng biết sử dụng thôi.
thứ 1 là mình không hiểu cách hoạt động của nó thế nào?
thứ 2 là mình muốn nâng cấp nó theo công thức của mình?
mà giờ hiểu biết cũng có hạn thôi bạn.vì đam mê bộ môn này.nếu được thì cùng nhau phát triển thôi bạn.
mình cũng chơi thử rồi.nói chung là nó hay trượt khung ngày 3.
Tức là bạn muốn làm rõ cách hoạt động của file trên đó à?
 
Để chạy được file này, cần làm như sau:
Nhấn alt+F11
Nhấn alt+T+R -> tìm & tích chọn các mục như hình trong sheet "Hd" -> OK -> alt+Q.
Chuyển sang sheet "capnhat", thực hiện theo hướng dẫn bên trong.
---
File này lấy kết quả miền Bắc từ trang ketqua.net.
Các ngày nghỉ tết, nghỉ dịch ...là những ngày không có kết quả -> không thống kê.
Tôi đã tích đủ theo hướng dẫn, để nguyên các mốc ngày như File Attach thì báo lỗi này.

Snag_9d839db.png
Snag_9d9586a.png

Tôi đang dùng excel 365 64bit.
cảm ơn anh.
 
@CHAOQUAY
@xuantuong.ktv
về vấn đề bẫy lỗi trên ketqua1.net thuật toán như sau: (ai cần thì làm nhé chứ m ko lấy bên ketqua1 :D)
1. Lấy ngày cuối cùng của các đài (dùng link ko có ngày nhé) gán vào 1 biến
2. Kiểm tra ngày max nếu = ngày cuối thì exit do

Mã:
If CDate(Mid(ResGetN, 7, 10)) = MinhNgoc.Range("B11").Value Then Exit Do  '//////////////// thêm dòng này 
        Loop
   End With
End If
End Sub

Chỉ có sửa thế thôi
Vì cái này m tạo thử trên minhngoc nhưng cũng chỉ bỏ qua ngày cuối THEO ĐÀI như miền nam hiện nay.
Còn đoạn nghỉ ở giữa nghe hơi căng. Thuật toán có mà chưa biết viết code thế nào :D.
Khó quá có khi quay sang kiểu lấy THEO MIỀN xem :D
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom