Reference - Giấc mơ đổi đời với Keno - Vietlott (Crawl Data Keno - Vietlott from minhchinh dot com)
Sau bốn rưỡi chưa biết ai giàu hơn ai nhé keke, đó là xưa rồi vì giờ này đối với Keno Vietlott thì sau 10 phút chưa biết ai giàu hơn kakak. Có một thanh niên ôm mộng làm giàu sau 10 phút cho hay :)
Như hình bên trên thanh niên thấy nó nhảy sau 10 phút một lần và dãy số này random theo range 1 đến 80, làm sao dự đoán chính xác số sẽ ra. Như qua tìm hiểu thì tìm thấy có nhiều cách tính toán nghiên cứu cống nạp gì đây bla bla.
Sau một hồi review sơ qua trang web này thì nhẩm nhẩm chém gió cho sang miệng chứ thực chất đoán lụi vài số xem sao, chả ra số nào mà chẳng hiểu xác xuất của nó ra sao.
Ok, không biết thì ngồi tính, mà lấy gì tính đây thế là quyết tâm lấy Data về nghiên cứu xem nó như thế nào, với giấc mơ nuôi mộng làm giàu kakaka.
Bắt tay vào Crawl hết các kết quả về ngồi vọc :
Đầu tiên kiểm tra xem cấu trúc html nó có dễ đọc không và kết quả rõ ràng như sau nên xem ra khá nhẹ nhàng, không khó lắm.
Check sơ qua thì thấy trang web này chỉ hoạt động kỳ xổ từ 6h sáng đến 22h đêm là ngừng, khi đó data sẽ không biến động, cắm máy chạy tới sáng là ngon lành :)
Và ý tưởng sẽ là mở browser sau đó bấm từng trang là lấy data lưu lại, ví dụ mở lên vào web chọn page 1 lấy data xong bấm vào trang 2 và lấy tiếp tục, cứ tuần tự click hết các trang và sẽ lấy các dữ liệu đang có.
Lôi python ra dùng, sẽ dùng thư viện Selenium WebDriver, ban đầu dùng chrome để chạy, nhưng chạy được thời gian thì phát sinh lỗi vì mỗi khi load page thì xảy ra tình trạng lag lag khá cao, tỉ lệ source html đọc không chính xác dù máy của mình thuộc hàng khủng nhưng cũng không giải quyết được gì cho lắm nên chuyển sang Firefox thì chạy khá ngon lành và nhẹ nhàng.
Giải thích sơ về đoạn code trên như sau :
Sau khi import thư viện thì mở trình duyệt lên theo chế độ ẩn danh, tốt nhất nên set mode chế độ này sẽ tốt hơn.
geckodriver : tải theo link sau
https://github.com/mozilla/geckodriver/releases
GeckoDriver là gì? GeckoDriver là một công cụ trình duyệt web được sử dụng trong nhiều ứng dụng do Mozilla Foundation và Mozilla Corporation phát triển. GeckoDriver là liên kết giữa các bài kiểm tra của bạn trong Selenium và trình duyệt Firefox. GeckoDriver là một proxy để sử dụng các ứng dụng khách tương thích với W3C WebDriver để tương tác với các trình duyệt dựa trên Gecko. Để khởi tạo đối tượng của GeckoDriver, bạn chỉ cần tạo đối tượng với sự trợ giúp của lệnh dưới đây.
# Options firefox firefox_options = webdriver.FirefoxOptions() firefox_options.add_argument("--private") driver_firefox = webdriver.Firefox(firefox_options=firefox_options, executable_path='./geckodriver')
Sau khi mở trình duyệt thì nhập link vào để trình duyệt load vào trang muốn lấy data
url = "https://www.minhchinh.com/xo-so-dien-toan-keno.html" driver_firefox.get(url) time.sleep(10)
Còn lại thấy gần 3000 trang nên để cho nó chạy tới 3000, điểm quan trọng nhất là xpath, dựa vào nó để biết được cái button pagination ở đâu mà click vào :)
path_click = './/a[@href="javascript:chosePage('+str(i + 1)+')"]'
elements = driver_firefox.find_elements_by_css_selector(".wrapperKQKeno")
Còn muốn lấy data đã kéo sẵn thì vào link đây : link
Có data rồi giờ phân tích và dự đoán mới căng, thôi đấp mền mơ tiếp kaka
Nhãn: Reference