Как извлечь значения строк таблицы tr с помощью Selenium из скрытого графика? (Переполнение: скрытый) - PullRequest
0 голосов
/ 16 февраля 2020

Это источник, из которого я хочу очистить данные https://www.fxstreet.com/economic-calendar/world-interest-rates

Когда вы нажимаете на название каждого банка, всплывает диаграмма и появляются строки таблицы и значения данных.

Однако эти графики скрыты. Поскольку переполнение атрибута: скрыто.

Как извлечь все значения в диаграмме?

Я уже написал код, которому удается выполнить итерацию, и щелкните имя каждого банка для отображения. график.

Но я понятия не имею, как извлечь значения из графиков. Пожалуйста помоги. Спасибо.

Это мой код:

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.fxstreet.com/economic-calendar/world-interest-rates')
time.sleep(10)
soup = BeautifulSoup(driver.page_source,"lxml")
time.sleep(10)

read_mores = driver.find_elements_by_xpath('//a[@href="#"]')

for read in read_mores:
    driver.execute_script("arguments[0].scrollIntoView();", read)
    driver.execute_script("(arguments[0]).click();", read)
    time.sleep(1)

    list_of_rows = []
    table = soup.select("table")[0] 
    for row in table.findAll('tr'):
        list_of_cells = []
        for cell in row.findAll(["th","td"]):
            list_of_cells.append(cell.text)
            list_of_rows.append(list_of_cells)

    for item in list_of_rows:
        print(' '.join(item))

    time.sleep(1)


driver.quit()

1 Ответ

0 голосов
/ 16 февраля 2020

Я не уверен, что правильно понял ваш вопрос, но если вам нужно извлечь скрытые табличные значения диаграммы, вы можете попробовать что-то вроде ниже.

После того, как вы нажмете на ссылку диаграммы, попробуйте ниже код для получения значений таблицы. (мой код в java)

List<WebElement> trs = driver().findElements((By.xpath("//div[contains(@aria-label,'tabular')]/table/tbody/tr")));
        for(WebElement tr : trs) {
            //  String name = we.getText();
            List<WebElement> tds = tr.findElements(By.tagName("td"));               
            String date = tds.get(0).getAttribute("textContent");
            String rate = tds.get(1).getAttribute("textContent");
            System.out.println(date);
            System.out.println(rate); 
        } 

ВЫХОД

15 февраля 1990

16,5

4 апреля , 1990

15

2 августа 1990

14

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