【发布时间】:2019-03-27 01:45:40
【问题描述】:
所以,我有一个关于加载数据缓慢的问题,这会导致我的 Selenium 关闭。
页面本身完成加载,但随后我在指定的跨度内以随机间隔显示数据(正在运行的脚本可能需要 X 时间)。它可能显示为空或带有字符串“n/a”。
注意:chart-data-window-item-value 类不是唯一的,我必须使用 XPATH 找到正确的 div/span。
我正在等待一个 span 用随机小数填充,然后继续。
空跨度:
<div class="chart-data-window-item-value"><span style="color:"></span></div>
或
<div class="chart-data-window-item-value"><span style="color:">n/a</span></div>
加载数据后:
<div class="chart-data-window-item-value"><span style="color:rgba(255, 127, 0, 1)">73.26000000</span></div>
我尝试了各种方法,最后是:
# wait = WebDriverWait(browser, 10).until(EC.text_to_be_present_in_element_value((By.XPATH, '/html/body/div[1]/div[3]/div/div[1]/div[1]/div[3]/div/div[2]/div[1]/div[3]/div[2]/div[10]/div[2]/span'), r"(?<=\()[0-9]*)"))
运气不好。
有什么建议吗?
【问题讨论】:
-
你试过
time.sleep()吗?这对我有用。还将pageLoadStrategy设置为none,这将绕过一些防御机制。 -
请发布一个指向该页面的链接...必须是比这更好的定位器。那将是非常脆弱的。它从
html标签开始,经历了太多的层次,同时使用了大量的索引。其中任何一个都是自找麻烦,但你已经把这三个结合起来了。 -
@jeffc 我不能,该指标使用了我们专有的,但是,它添加到这样的图表中,tradingview.com/chart/LW1VvtHB 左侧的“数据表”表示它的外观。另外,是的,定位器是垃圾,但它是 WIP。
标签: python selenium selenium-webdriver web-scraping selenium-chromedriver