from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
import time

# 初始化 WebDriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')  # 无头模式，不打开浏览器界面
driver = webdriver.Chrome(options=options)

try:
    # 打开金十数据网站
    driver.get("https://www.jin10.com/")

    # 等待网页加载并找到目标元素
    target_xpath = '/html/body/div[1]/div[2]/div[2]/div/main/div[2]/div[2]/div[2]/div[2]/div[2]/div[4]/span[2]/div[1]/div[3]/div/div[2]/div[3]'
    target_element = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.XPATH, target_xpath))
    )

    # 使用 JavaScript 修改元素的 class
    script = '''
    var element = document.evaluate(arguments[0], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    element.className = "hot-filter_item is-active";
    '''
    driver.execute_script(script, target_xpath)

    # 立即更新内容，假设更新内容的位置是已知的
    update_xpath = '/html/body/div[1]/div[2]/div[2]/div/main/div[2]/div[2]/div[3]'
    update_element = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.XPATH, update_xpath))
    )
    
    # 触发页面更新，这里假设更新内容是通过某种操作，比如点击按钮或其他方式
    # 请根据实际情况调整这里的操作
    driver.execute_script('arguments[0].scrollIntoView(true);', update_element)
    time.sleep(5)  # 等待页面内容更新

    # 获取页面内容
    page_source = driver.page_source

    # 使用 BeautifulSoup 解析 HTML
    soup = BeautifulSoup(page_source, 'lxml')

    # 提取 class 为 'jin-flash-item-container is-normal' 的 div 标签
    items = soup.find_all('div', class_='jin-flash-item-container is-normal')

    # 只爬取前5条信息
    # 初始化匹配计数器
    matched_count = 0
    
    # 只爬取包含关键词的信息
    for index, item in enumerate(items[:40], start=1):
        text_content = item.get_text(strip=True)
        # print(text_content)
        
        if '默认火热沸爆' not in text_content:
            continue
            
        matched_count += 1
        # print(items[1])
        parts = text_content.split('默认火热沸爆', 1)#默认火热沸爆
        if len(parts) > 1:
            print(f"匹配信息 {matched_count}:")
            if parts[1].strip():
                modified_text = parts[1].strip()[0] + "：" + parts[1].strip()[1:]
                print(modified_text)
            else:
                print("")
    print(f"\n共找到 {matched_count} 条匹配'默认火热沸爆'的信息")

finally:
    # 关闭 WebDriver
    driver.quit()