selenium 使用CLASS_NAME属性从HTML中提取信息

blmhpbnm  于 2023-02-12  发布在  其他
关注(0)|答案(1)|浏览(119)

我尝试使用selenium从html中提取一个表,我的目的是捕获所有类“iframe-b3”,因为我需要表中的日期和值。
https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/consultas/boletim-diario/boletim-diario-do-mercado/
“Tabela:参与调查”法规审判:

driver.find_element(by=By.CLASS_NAME, value="iframe-b3")
print_tabela = driver.find_element(by=By.CLASS_NAME, value="iframe-b3")

我需要将这些信息和成绩单复制到Excel中。

gmol1639

gmol16391#

我在website上找不到该表,但是datepicker元素在<iframe>中,因此您必须:

driver.get('https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/consultas/boletim-diario/boletim-diario-do-mercado/')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#onetrust-accept-btn-handler"))).click()
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe.iframe-b3")))
print(WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.duet-date input[name='date']"))).get_attribute("value"))
driver.quit()
  • 控制台输出:
2023-02-07
      • 注意**:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

参考

您可以在以下位置找到一些相关讨论:

  • Ways to deal with #document under iframe
  • 通过Selenium和python切换到iframe
  • selenium.common.exceptions.NoSuchElementException:消息:没有此元素:尝试使用selenium单击"下一步"按钮时无法定位元素
  • python中 selenium :无此类元素异常:消息:没有此元素:找不到元素

相关问题