#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.