Gả nhầm hào môn, chủ mẫu khó đương - Chương 188

Cập nhật lúc: 2025-08-18 07:48:17
Lượt xem: 0

Mời Quý độc giả CLICK vào liên kết hoặc ảnh bên dưới

mở ứng dụng Shopee để tiếp tục đọc toàn bộ chương truyện!

https://s.shopee.vn/LZgPqoVWv

MonkeyD và đội ngũ Editor xin chân thành cảm ơn!

# -*- coding: utf-8 -*-

 

# ==============================================================================

# --- BƯỚC 0: CÀI ĐẶT MÔI TRƯỜNG CHO GOOGLE COLAB ---

# ==============================================================================

# Các lệnh sẽ cài đặt trình duyệt Chrome và driver cần thiết.

# BẮT BUỘC chạy ô tiên và chờ nó tất.

print(">>> Đang cài đặt Chrome và các gói cần thiết...")

!apt-get update

!apt-get install -y chromium-browser chromium-chromedriver > /dev/null 2>&1

!pip install selenium > /dev/null 2>&1

print(">>> Cài đặt tất!")

 

import time

import random

import threading

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.chrome.options import Options

from urllib.parse import urlparse, urlunparse

 

# ==============================================================================

# --- BƯỚC 1: KHU VỰC CẤU HÌNH ---

# ==============================================================================

 

# Dán danh sách các URL chương truyện bạn chạy đây

# Mỗi URL một dòng, trong cặp ba dấu nháy kép """..."""

CHAPTER_URLS_TEXT = """

https://monkeyd.net.vn/ga-nham-hao-mon-chu-mau-kho-duong/chuong-1.html

https://monkeyd.net.vn/ga-nham-hao-mon-chu-mau-kho-duong/chuong-2.html

https://monkeyd.net.vn/ga-nham-hao-mon-chu-mau-kho-duong/chuong-3.html

https://monkeyd.net.vn/ga-nham-hao-mon-chu-mau-kho-duong/chuong-4.html

https://monkeyd.net.vn/ga-nham-hao-mon-chu-mau-kho-duong/chuong-5.html

"""

 

# Số " ảo" chạy song song ( luồng)

# Lưu ý: Colab giới hạn tài nguyên, nên giữ con ở mức hợp lý (ví dụ: 2-5)

NUM_WORKERS = 3

 

# Thời gian "" mỗi chương (giây). Đặt lớn hơn 105 giây để chắc chắn.

VIEW_TIME_S = 108

 

# Thời gian nghỉ (giây) khi xong hết danh sách khi lặp

MIN_LOOP_WAIT_S = 300  # 5 phút

MAX_LOOP_WAIT_S = 600  # 10 phút

 

# ==============================================================================

# --- BƯỚC 2: LÕI CỦA CÔNG CỤ (KHÔNG CẦN CHỈNH SỬA) ---

# ==============================================================================

 

# Cờ để điều khiển việc dừng các luồng

stop_threads = False

 

def setup_colab_driver():

    """Thiết lập một trình duyệt Chrome để chạy môi trường Google Colab."""

    chrome_options = Options()

    # Các tùy chọn là BẮT BUỘC để chạy Selenium Colab

    chrome_options.add_argument("--headless")

    chrome_options.add_argument("--no-sandbox")

    chrome_options.add_argument("--disable-dev-shm-usage")

 

    # Các tùy chọn tối ưu hóa khác

    chrome_options.add_argument("--disable-gpu")

    chrome_options.add_argument("--disable-extensions")

    chrome_options.add_argument("--log-level=3") # Chỉ hiển thị nghiêm trọng

    # Chặn tải hình ảnh để tiết kiệm tài nguyên

    chrome_options.add_experimental_option(

Carrot Và Tịch Dương

        "prefs", {"profile.managed_default_content_settings.images": 2}

    )

 

    # Giả lập một User Agent phổ biến

    user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"

    chrome_options.add_argument(f'user-agent={user_agent}')

 

    try:

        # Sử dụng đường dẫn mặc định của chromedriver Colab

        service = Service('/usr/bin/chromedriver')

        driver = webdriver.Chrome(service=service, options=chrome_options)

        return driver

    except Exception as e:

        print(f"Lỗi nghiêm trọng khi khởi tạo driver: {e}")

        return None

 

def selenium_worker(worker_id, chapter_urls):

    """

    Hàm công việc cho mỗi luồng.

    Mỗi luồng sẽ duyệt qua danh sách URL, đó nghỉ và lặp .

    """

    global stop_threads

   

    # Vòng lặp vô tận: xong sẽ tự reset và bắt đầu

    while not stop_threads:

        print(f"[Worker #{worker_id}] Bắt đầu một lượt mới.")

       

[Truyện được đăng tải duy nhất tại MonkeyD.net.vn - https://monkeydtruyen.com/index.php/ga-nham-hao-mon-chu-mau-kho-duong/chuong-188.html.]

        # Duyệt qua từng URL trong danh sách

        for url in chapter_urls:

            if stop_threads:

                print(f"[Worker #{worker_id}] Nhận tín hiệu dừng, kết thúc.")

                break

 

            driver = None # Đảm bảo driver khởi tạo

            try:

                driver = setup_colab_driver()

                if not driver:

                    print(f"[Worker #{worker_id}] Không thể khởi tạo trình duyệt. Bỏ qua chương .")

                    time.sleep(60) # Chờ 1 phút khi thử

                    continue

               

                print(f"[Worker #{worker_id}] Đang mở chương: ...{url[-30:]}")

                driver.get(url)

 

                print(f"[Worker #{worker_id}] Đang '' trong {VIEW_TIME_S} giây...")

                time.sleep(VIEW_TIME_S)

               

                print(f"[Worker #{worker_id}] Hoàn thành chương: ...{url[-30:]}")

 

            except Exception as e:

                print(f"[Worker #{worker_id}] Gặp khi xử lý URL {url}: {e}")

            finally:

                if driver:

                    driver.quit() # Đóng trình duyệt để giải phóng tài nguyên

       

        if stop_threads:

            break

 

        # Nghỉ ngơi khi bắt đầu

        reset_wait = random.randint(MIN_LOOP_WAIT_S, MAX_LOOP_WAIT_S)

        print(f"[Worker #{worker_id}] Đã thành danh sách. Sẽ bắt đầu {reset_wait // 60} phút {reset_wait % 60} giây.")

       

        # Vòng lặp chờ thể ngắt

        for _ in range(reset_wait):

            if stop_threads:

                break

            time.sleep(1)

 

def main():

    """Hàm chính để khởi tạo và quản lý các luồng."""

    global stop_threads

   

    print(">>> Bắt đầu công cụ tăng view (Phiên bản Google Colab) <<<")

   

    # Lọc và sạch danh sách URL

    urls = [url.strip() for url in CHAPTER_URLS_TEXT.strip().split('\n') if url.strip()]

    if not urls:

        print("Lỗi: Không tìm thấy URL nào trong cấu hình. Vui lòng kiểm tra BƯỚC 1.")

        return

       

    print(f"Đã tìm thấy {len(urls)} chương để xử lý.")

    print(f"Số luồng chạy song song: {NUM_WORKERS}")

    print("Nhấn nút 'Dừng' (Stop) trong Colab để kết thúc chương trình.")

 

    threads = []

    for i in range(NUM_WORKERS):

        # Chia đều danh sách URL cho các worker

        # Điều giúp các worker truy cập cùng URL một lúc

        worker_urls = urls[i::NUM_WORKERS]

       

        thread = threading.Thread(

            target=selenium_worker,

            args=(i + 1, worker_urls),

            daemon=True

        )

        threads.append(thread)

        thread.start()

        time.sleep(random.randint(2, 5)) # Dãn cách thời gian khởi động các trình duyệt

 

    # Giữ cho chương trình chính chạy và chờ tín hiệu dừng

    try:

        while True:

            # Kiểm tra xem tất cả các luồng còn sống

            if not any(t.is_alive() for t in threads):

                print("Tất cả các worker dừng. Kết thúc chương trình.")

                break

            time.sleep(5)

    except KeyboardInterrupt:

        print("\n>>> Đã nhận tín hiệu dừng. Đang yêu cầu các luồng kết thúc... <<<")

        stop_threads = True

        # Chờ các luồng kết thúc một cách an

        for t in threads:

            t.join()

        print(">>> Chương trình kết thúc an . <<<")

 

# ==============================================================================

# --- BƯỚC 3: CHẠY CÔNG CỤ ---

# ==============================================================================

if __name__ == "__main__":

    main()

 

Loading...