Как я могу получить все предметы таблицы с Selenium (Python3)? - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу получить информацию из таблицы на странице https://www.oddsportal.com/soccer/england/premier-league/wolves-newcastle-utd-nNNqedbR/.

Это таблица, которая автоматически меняет свои элементы (mb с js, ajax).enter image description here

Если я напишу следующий код, я получу ошибку У объекта 'HtmlElement' нет атрибута 'find_element_by_xpath'

url = 'https://www.oddsportal.com/soccer/england/premier-league/wolves-newcastle-utd-nNNqedbR/'

options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get(url)

html = lxml.html.fromstring(driver.page_source)
tbody = html.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody')
trows = tbody.find_elements_by_tag_name("tr")

enter image description here

1 Ответ

0 голосов
/ 02 февраля 2019

lxml - это (предположительно) библиотека lxml , поэтому ваш объект html является ее экземпляром.Как говорит исключение - у него нет методов find_element_by_xpath() и tag_name, которые есть в библиотеке селена.

Поэтому вместо работы с объектом html работайте с driver:

tbody = driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody')
trows = tbody.find_element_by_tag_name("tr")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...