Соскреб в сети с использованием проблемы Selenium с тем же именем - PullRequest
0 голосов
/ 21 апреля 2019

Я извлекаю некоторые данные о футболе из простой динамической таблицы с помощью Selenium, но проблема в том, что когда я пытаюсь получить имя класса «text-center», он показывает много дополнительных данных, которые мне не нужны.

Я пытался использовать xpath и css_selector, но это не решило проблему.

Сайт HTML:

Данные 1: Оценка (Требуемый результат: 0-0)

<td class="text-center">
   <a href="/r/1571269/somedata" id="r_1571269S">0-0</a>
   </td>

Данные 2: Нечетные: (Требуемые данные: 2,375)

<td class="text-center" id="o_1562530_0">2.375</td>

Это часть моего кода:


Score = driver.find_element_by_class_name('text-center')
for score in Score:

    print("Score: "+ score.text)


Как видите, у них одинаковое имя класса, и когда я запускаю сценарий, он появляется как вместе, так и с большим количеством дополнительного содержимого с этим именем класса. Также я пытался найти по идентификатору, но идентификатор меняется каждый раз, так что это не имеет смысла. Что вы порекомендуете? Заранее спасибо.

1 Ответ

1 голос
/ 22 апреля 2019

Вопрос действительно неясен ... но ... если у вас есть несколько элементов с одинаковым именем класса CSS, вы можете найти текст в каждом элементе следующим образом:

elements = driver.find_elements_by_class_name('text-center')
for element in elements:
    print(element.text)
  • обратите внимание на использование find_elements_* вместо find_element_* ... множественная версия возвращает список всех соответствующих элементов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...