Не удалось найти способ получить доступ к загружаемому элементу со страницы

#python #html #selenium #xpath #web-scraping

#python #HTML #селен #xpath #веб-очистка

Вопрос:

Я хочу программно загружать CSV-файлы с basketball-reference.com . На скриншоте ниже показано, как это можно сделать вручную в браузере:

введите описание изображения здесь

Однако источник страницы для этого элемента выглядит следующим образом:

введите описание изображения здесь

Моя первая мысль заключается в том, что это невозможно удалить, потому что это стоит за каким-то Javascript или чем-то еще. Есть ли способ получить доступ к этому элементу?

ОБНОВЛЕНИЕ: это также существует:

введите описание изображения здесь

Могу ли я попросить Selenium щелкнуть это?

Комментарии:

1. у вас есть URL-адрес?

Ответ №1:

Если вы хотите щелкнуть по этому элементу и отобразить таблицу, вы должны сделать что-то вроде этого. Но это только выводит его на сайт, поэтому, если вы хотите, вы можете захватить его или отправить запрос на страницу.

 driver.get('https://www.basketball-reference.com/teams/')
wait=WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Share amp; more']/parent::li"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Get table as CSV (for Excel)']"))).click()
 

Импорт

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

Комментарии:

1. Спасибо — я рассмотрю возможность их добавления. Это похоже именно на то, что я ищу. По сути, мы знаем, что он доступен через Selenium?

2. Я получил это: ElementClickInterceptedException: Message: element click intercepted: Element <li class="hasmore">...</li> is not clickable at point (239, 573). Other element would receive the click: <iframe id="google_ads_iframe_....

3. При дополнительном чтении, похоже, это может быть реклама Google, мешающая. Пока я не могу понять, как его соответствующим образом удалить.

4. Он доступен через selenium. Если есть реклама Google, вы можете что-то сделать с помощью опций или просто нажать x.