要价的抓取类:检索不完整的要价值

问题描述 投票:0回答:1

这是我的问题。我正在尝试从币安网站检索各种值(价格)。我已经设法从“orderbook-list-container”中提取不同的类。然而,它并没有给我 HTML 这部分中的所有询问值。

因此,我尝试遍历不同的“div”元素以到达我想要的元素。这就是我所做的:

driver.get("https://www.binance.com/fr/trade/ETH_USDT")
wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="onetrust-reject-all-handler"]'))).click()
sleep(0.5)
sell = wait.until(EC.visibility_of_all_elements_located((By.XPATH, '//*[@id="spotOrderbook"]/div[3]/div[1]/div[1]/div[1]/div//div//div//div//div')))
e=0
print(len(sell))
for prix, row in enumerate(sell):
    e+=1
    prixx = sell[prix].get_attribute('ask-light')
    print("Prix pour sell: ", prixx, e)

一切正常;但是,我无法检索所有“ask-light”值。所以我想问一下有没有可能全部拿到?

致以诚挚的问候。

抱歉,我的英文翻译不准确;我的语言说得不太好。

python selenium-webdriver web-scraping
1个回答
0
投票

您所指的“ask-light”是一个类,而不是一个属性,例如

<div class="ask-light" style="font-size: 12px; flex: 1 1 0%; text-align: left;">3070.81</div>

获取所有这些内容的最简单方法是使用简单的 CSS 选择器,

div.ask-light
^ find a DIV tag
   ^ that has a class 'ask-light'

更新您的代码,我们得到

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = "https://www.binance.com/fr/trade/ETH_USDT"
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)

wait = WebDriverWait(driver, 10)
prices = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.ask-light")))
for price in prices:
    print(price.text)

driver.quit()

输出

3067.51
3067.50
3067.49
3067.48
3067.46
3067.45
3067.41
3067.40
3067.39
3067.36
3067.35
3067.34
3067.33
3067.31
3067.30
3067.29
3067.28
3067.26
© www.soinside.com 2019 - 2024. All rights reserved.