Я пытаюсь очистить таблицы от этой страницы , динамической страницы, где таблицы скрыты во фреймах. Я использую Google Colab / Python / Selenium.
Когда я перехожу к исходной ссылке, я могу найти в теге другой URL, который показывает фактические таблицы на странице по умолчанию, и я могу легко их очистить.
Но мне нужно щелкнуть второстепенные элементы, что мне удалось сделать. Проблема в том, что я на самом деле не получаю таблицы, просто еще один элемент с тегом javascript вместо таблиц.
def init_browser():
# Mac-specific browser init
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome('chromedriver', options=options)
driver.implicitly_wait(5) # seconds
return driver
stage = 'http://www.matsport.fr.php72-23.lan3-1.websitetestlink.com/LiveCyc/main.php?Race=GBW&Saison=2019&Lang=Fr&Stage=3'
driver = init_browser()
driver.get(stage)
sleep(2)
# Scrape the page
soup = BeautifulSoup(driver.page_source, 'lxml')
try:
tables = soup.find_all('table', class_='Class_TableClassement')
except ElementDoesNotExist:
print("Results not found")
table = []
for item in tables:
table.append(pd.read_html(str(item))[0])
Это дает мне две таблицы по умолчанию в данных. Затем я могу получить идентификаторы ссылок для других таблиц результатов (точки, горы и т. Д.)
links = soup.find_all('div', class_='Class_LienClassement')
ids = []
for item in links:
ids.append(item['id'])
[ 'Class_LienClassement_SL',
'Class_LienClassement_1',
'Class_LienClassement_2',
'Class_LienClassement_3',
'Class_LienClassement_4',
'Class_LienClassement_5',
'Class_LienClassement_6'] * 1013 *
Все выглядит хорошо, пока я не попробую следующий шаг: нажимая на кнопки для Очков:
from selenium.webdriver.common.action_chains import ActionChains
driver.get(stage)
button = driver.find_element_by_id('Class_LienClassement_2')
ActionChains(driver).move_to_element(button).click().perform()
soup = BeautifulSoup(driver.page_source, 'lxml')
Таблицы должны быть в div class = "Class_DivAffClassementContent", но вместо этого они пустые.
Мне кажется, что я провел все исследования, которые мог сделать здесь, и застрял, пытаясь сделать динамический контент видимым для следующего набора таблиц. Если кто-то может помочь, я буду очень признателен!