我必须从this网站读取数据。 在我们点击页面几秒钟后,表格就会加载。
我正在使用PYTHON + SELENIUM代码以默认的延迟秒数(20)从表中读取数据,但是这太糟糕了,因为数据是动态的,我想优化到这样的程度:加载后,我应该能够阅读和处理它。
为此,我尝试等待使用以下代码加载时间元素(id-equity_timeStamp):
myElem = WebDriverWait(webdriverFire, 3).until(EC.presence_of_element_located((By.ID,'equity_timeStamp')))
但是即使这个元素的存在也不能保证数据的存在(如上所述,只是检查元素的存在而不是其中的文本)。我还考虑过使用EC.text_to_be_present_in_element((By.ID, 'equity_timeStamp'))
,但文本不是常量。
我知道我应该等待一些东西,但是有用的所有内容都有动态文本。
答案 0 :(得分:0)
您可以尝试 visibility_of_element_located
,因为 presence_of_element_located
不保证该元素的可见性
答案 1 :(得分:0)
您还可以尝试使用implicit wait
方法。当网页上的某些元素无法立即使用并且需要一些时间来加载时,这很有用。您可以查看硒文档。关于https://www.selenium.dev/documentation/en/webdriver/waits/
答案 2 :(得分:0)
要访问equity table
,请使用visibility_of_element_located
()并跟随css选择器。
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"table#optionChainTable-indices")))