如何使用 Python 和 Selenium 从 IFRAME 获取数据

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

我正在尝试从此页面获取值:https://www.bbva.com.co/personas/productos/inversion/fondos/pais.html

我是图像,我向您展示我需要获得什么。

检查页面

我看到的第一件事是该值位于类 =“iframe_base”的 Iframe 内。

我尝试了下一个代码来提取该值,但它没有正常工作,因为我什么也没得到。

我正在使用 selenium 和 Microsoft Edge 的网络驱动程序。

我做错了什么?以及我怎样才能获得我需要的东西?

谢谢。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
import time

# Configura el controlador de Edge
edge_options = Options()
# edge_options.add_argument("--headless") 
service = Service("C:/Users/PERSONAL/Downloads/msedgedriver.exe")  
driver = webdriver.Edge(service=service, options=edge_options)

# Abre la página web
driver.get("https://www.bbva.com.co/personas/productos/inversion/fondos/pais.html")  # Reemplaza con la URL real

# Espera hasta que el iframe esté presente
time.sleep(5)  # Espera 5 segundos, ajusta según sea necesario

print("Seleccionamos el IFRAME")
iframe1 = driver.find_element(By.XPATH, "//*[@id = 'content-iframe_copy']")

print("Cambiamos el foco el IFRAME")
driver.switch_to.frame(iframe1)

print("Obtener HTML del IFRAME")
html = driver.page_source
print(html)

print("Obtener el dato")
dato = driver.find_elements(By.TAG_NAME, "g")
print(dato)

driver.quit()
python selenium-webdriver web-scraping
1个回答
0
投票

你可以使用它

from bs4 import BeautifulSoup as BS

soup = BS(driver.page_source, features="html.parser")
step1 = soup.find("div", class_="caja-liquidativo-rentabilidad")
step2 = step1.find("p", class_="liquidativo-rentabilidad)"
© www.soinside.com 2019 - 2024. All rights reserved.