"""
|
热门板块监听
|
"""
|
import logging
|
import time
|
from selenium import webdriver
|
from selenium.webdriver.common.by import By
|
from selenium.webdriver.chrome.options import Options
|
|
|
def __parseData(driver):
|
items = driver.find_element(by=By.ID, value="nuxt-layout-container").find_element(by=By.CLASS_NAME,
|
value="topgainer-content-left").find_elements(
|
by=By.CLASS_NAME,
|
value="topgainer-tag")
|
data_list = []
|
for item in items:
|
print("----------------------")
|
header = item.find_element(by=By.TAG_NAME, value="section").find_element(by=By.TAG_NAME, value="header")
|
title = header.find_element(by=By.TAG_NAME, value="h3").text
|
total_rate = header.find_element(by=By.TAG_NAME, value="span").text
|
print(title, total_rate)
|
contents = item.find_element(by=By.TAG_NAME, value="div").find_element(by=By.TAG_NAME,
|
value="tbody").find_elements(
|
by=By.TAG_NAME, value="tr")
|
codes_list = []
|
for content in contents:
|
tds = content.find_elements(by=By.TAG_NAME, value="td")
|
code = tds[0].find_elements(by=By.TAG_NAME, value="span")[1].text
|
limit_up_info = tds[1].text
|
price = tds[2].text
|
rate = tds[3].text
|
limit_up_time = tds[4].text
|
huanshou = tds[5].text
|
ltsz = tds[6].text
|
codes_list.append((code, limit_up_info, price, rate, limit_up_time, huanshou, ltsz))
|
data_list.append((title, total_rate, codes_list))
|
print("----------------------")
|
|
return data_list
|
|
|
# 获取热门板块
|
def get_hot_block(callback):
|
# 先启动浏览器
|
options = Options()
|
options.add_argument("--disable-blink-features")
|
options.add_argument("--disable-blink-features=AutomationControlled")
|
driver = webdriver.Chrome(options=options)
|
driver.get("https://xuangubao.cn/top-gainer")
|
time.sleep(5)
|
while True:
|
time.sleep(3)
|
try:
|
result = __parseData(driver)
|
callback(result)
|
except Exception as e:
|
logging.exception(e)
|