selenium не отдает часть html от страницы

собираю информацию с сайта одного института, url ниже, и хочу взять ссылки сотрудников и их имена, driver подгружает эту информацию её видно в браузере, но html который берется то есть page_source в нём нет этой информации, в чём может быть дело?

from selenium import webdriver
from bs4 import BeautifulSoup

url = 'https://kpfu.ru/computing-technology/struktura/kafedry/kafedra-prikladnoj-matematiki/kafedra-prikladnoj-matematiki-sotrudniki'

driver = webdriver.Firefox(executable_path=constants.gecko_path)
driver.get(url)
html = driver.page_source

def gather_employees_links(html):
    soup = BeautifulSoup(html, 'lxml')

    spans = soup.find_all('span', class_='fio')
    a_tags = [span.find('a') for span in spans]
    employees = {a.text: a.get('href') for a in a_tags}

    return employees

print(gather_employees_links(html))

Ответы (1 шт):

Автор решения: Rolles

Вариант решения с webdriver, но это также можно реализовать через requests.

Import

import time
from selenium import webdriver

Code

    driver.get('https://shelly.kpfu.ru/e-ksu/portal_employee.searchscript?p_'
               'search=1.1.2.09.2.01.2.1&p_noofficename=1&p_order=1&')
    time.sleep(3)
    
    xpath = "//td/span[@class='fio' and 1]/a[1]"
    elements = driver.find_elements_by_xpath(xpath)
    names = []
    for element in elements:
        names.append(element.text)
    
    url = []
    for i in range(1, 25):
        try:
            xpath = f"//tr[{i}]/td[@class='li_spec' and 1]/span[@class='fio' and 1]/a[1]"
            element = 
            driver.find_element_by_xpath(xpath).get_attribute('href')
            url.append(element)
        except:
            continue
    
    print(names)
    print(url)

Не забудьте создать объект драйвера.

Второй вариант через requests

Import

import requests
from lxml import html

Code

url = 'https://shelly.kpfu.ru/e-ksu/portal_employee.searchscript?p_search=1.1.2.09.2.01.2.1&p_noofficename=1&p_order=1&'
response = requests.get(url)
tree = html.fromstring(response.content)

names = []
elements = tree.xpath("//td/span[@class='fio' and 1]/a[1]")
for element in elements:
    names.append(element.text)


url = []
for i in range(1, 25):
    try:
        xpath = f"//tr[{i}]/td[@class='li_spec' and 1]/span[@class='fio' and 1]/a[1]/@href"
        element = tree.xpath(xpath)
        url.append(element[0])
    except:
        continue

print(names)
print(url)
→ Ссылка