Отображение текста из атрибута onmouseover с помощью Beautiful Soup - PullRequest
0 голосов
/ 04 ноября 2018

Различные варианты этого вопроса уже задавались:

Как найти элемент onmouseover, используя Selenium в Python?

Как эмулировать наведение мыши или запускать функцию JS на странице с PhantomJS в NodeJS

В основном я хочу получить текст из ячейки таблицы, который отображается при наведении курсора мыши, как показано на рисунке ниже. Я пишу код на Python и использую Beautiful Soup

enter image description here

Я могу успешно получить атрибут onmouseover, используя Beautiful Soup:

<td class="right odds down"><div onmouseout="delayHideTip()" onmouseover="page.hist(this,'P-0.00-0-0','357osx2s5a4x0x7ot9r',2,event,0,1)">+340</div></td>  

<div onmouseout="delayHideTip()" onmouseover="page.hist(this,'P-0.00-0-0','357osx2s5a4x0x7ot9r',2,event,0,1)">+340</div>

Мой вопрос Как я могу получить текст (начальный нечетный), используя атрибут:

onmouseover="page.hist(this,'P-0.00-0-0','357osx2s5a4x0x7ot9r',2,event,0,1)

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 04 ноября 2018

Хорошо, ответ на самом деле - получить информацию с помощью веб-драйвера Selenium. Например, если мы хотим получить начальные шансы от bwin, который является восьмой строкой в ​​нашей таблице шансов: его x-путь:

 "//*[@id =" + '"odds-data-table"' + "]/div[1]/table/tbody/tr[8]/td[2]")

и мы можем получить исходные нечетные данные, сначала наведя на них курсор и получив информацию как таковую:

 initial_odd_data = driver.find_element_by_xpath("//*[@id =" + '"odds-data-table"' + "]/div[1]/table/tbody/tr[8]/td[2]")
hov = ActionChains(driver).move_to_element(initial_odd_data)
hov.perform()
data_in_the_bubble = driver.find_element_by_xpath("//*[@id='tooltiptext']")
hover_data = data_in_the_bubble.get_attribute("innerHTML")
...