Python Селен не может найти стол - PullRequest
0 голосов
/ 27 марта 2020

Почему Selenium не находит таблицу на странице?

Не могу понять, что не так в приведенном ниже коде.

import pandas as pd
from selenium import webdriver

import time
options = webdriver.ChromeOptions()
options.add_argument('disable-infobars')
options.add_argument("--disable-extensions")
prefs = {'safebrowsing.enabled': 'false', 'download.default_directory': r'C:\Users\guilh\Documents\Informes'}
options.add_experimental_option("prefs", prefs)

driver = webdriver.Chrome(options=options)
driver.implicitly_wait(30)

driver.get('http://www.b3.com.br/pt_br/produtos-e-servicos/negociacao/renda-variavel/fundos-de-investimentos/fii/')

time.sleep(2)
df = pd.read_html(driver.page_source)[0]
print(df)

ОШИБКА:

ValueError: No tables found

1 Ответ

1 голос
/ 27 марта 2020

Iframe присутствует на вашей веб-странице. Вам нужно сначала переключить iframe перед обработкой данных таблицы. Пожалуйста, обратитесь к решению ниже: *

driver.get('http://www.b3.com.br/pt_br/produtos-e-servicos/negociacao/renda-variavel/fundos-de-investimentos/fii/')
driver.maximize_window()
iframe = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.ID, 'bvmf_iframe')))
driver.switch_to.frame(iframe)

tabel = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.XPATH, '//table[@class="responsive"]')))

print tabel.text

Примечание: Пожалуйста, добавьте belo импорт

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...