python - 硒类跨度不断变化的python
问题描述
我需要帮助从不断变化的跨度类中提取文本。我已经尝试了一切,Xpath,类名......但我永远无法提取文本。
正如您在照片中看到的,我想从左上角(“BB”)中提取数字。在下面你可以看到它是一个跨度类。这个价格是不断变化的。我试过了
driver.find_element_by_xpath['/html/body/div[1]/div[1]/div/div[3]/table/tbody/tr[1]/td[2]/div/div[3]/div[2]/div/span[1]/span'].text
还
driver.find_element_by_xpath('//span[@class="pane-legend-item-value-wrap"]').text
Xpath 应该没有问题......但我无法提取文本。
解决方案
中的所有元素Tradingview
都在一个iframe
. DOM 不断变化。
下面是代码。有时它适用于options
有时与options1
.
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="path to chromedriver.exe")
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("https://www.binance.com/es/trade/ETH_USDT?layout=pro")
time.sleep(40) # To manually close the pop-ups, select "tradingview" and "Boillinger bands"
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@name,'tradingview')]"))
options = driver.find_elements_by_xpath("//table[@class='chart-markup-table']//tr[1]//div[@class='pane-legend']//div[contains(@class,'study')]")
print("from options: {}".format(len(options)))
for opt in options:
title = opt.find_element_by_xpath("./span[1]").get_attribute("innerText")
value = opt.find_elements_by_xpath("./div//span[contains(@class,'item-value')]/span/*")
valuelist = []
for val in value:
valuelist.append(val.get_attribute("innerText"))
print(f"{title}: {valuelist}")
options1 = driver.find_elements_by_xpath("//div[@data-name='legend']/div[2]/div[2]/div[@data-name='legend-source-item']")
print("from options1: {}".format(len(options1)))
for opt in options1:
title = opt.find_element_by_xpath(".//div[contains(@class,'titleWrapper')]").get_attribute("innerText")
value = opt.find_elements_by_xpath(".//div[contains(@class,'valueValue')]/*")
valuelist = []
for val in value:
valuelist.append(val.get_attribute("innerText"))
print(f"{title}: {valuelist}")
from options: 4
MA (7, close, 0): ['3449.2257']
MA (25, close, 0): ['3487.6052']
MA (99, close, 0): ['2713.4087']
BB (20, 2): ['3556.2910', '4026.2328', '3086.3492']
from options1: 0
推荐阅读
- javascript - 在 axios 响应做出反应后,如何有条件地重定向到页面?
- azure - Azure WebApps 和 WebJobs 是否共享配置
- javascript - express-validator 5.3.1 到 6.6.0 expressValidator 不是函数
- python - “用户”字段一直为空
- ajax - 如何在 vue3 中不使用 axios 的情况下创建一个通用 api url,该 api url 可用于所有 ajax post 的所有组件并获取请求?
- javascript - 如果没有选择图像的任何部分,如何中止脚本?Photoshop Javascript
- python - 在雪花中存储 SKLearn Birch 模型的有效方法(并绕过 8MB 二进制限制)
- python - 为什么该程序不能在不和谐机器人中用作具有自动角色的验证系统?
- apache-flink - 如何在 FlinkSQL 中按周聚合数据
- amazon-web-services - 无法创建新的 AWS Athena 数据目录