#python #selenium #web-scraping #classname
#python #селен #веб-очистка #имя_класса
Вопрос:
Я бы соскреб с этой страницы цели и красные карточки каждой команды. Это URL: https://www.flashscore.com/match/6DavxcEF/#match-summary
Я пытался использовать эту часть кода
try:
driver.find_element_by_xpath("//*[@id='summary-content']/div[1]")
goals=driver.find_element_by_class_name("icon soccer-ball").text
card1 = driver.find_element_by_class_name("icon yr-card").text
card2 = driver.find_element_by_class_name("icon r-card").text
except NoSuchElementException:
goals = " "
card1 = " "
card2 = " "
Кто-нибудь может мне помочь?
Спасибо
Комментарии:
1. можете ли вы опубликовать ожидаемый / полученный результат и / или какие-либо трассировки? вопрос не ясен, потому что мы не знаем проблемы
2. вы должны использовать
requests
модуль для извлечения данных с сайтов.3. @LeonardoScotti Я отредактировал код, и у меня есть пустой результат в качестве возврата, ошибок нет.
Ответ №1:
Когда я проверяю элементы, внутренняя часть тегов span в имени класса значка y-card пуста. Я решил проблему следующим образом.
md = driver.find_elements_by_class_name("detailMS__incidentRow")
for i in md:
if i.find_elements_by_class_name("icon.y-card"):
print(i.text)
Таким образом, карты и т. Д. Вы можете получить доступ к своим данным. С incidentRow-away
incidentRow-home
помощью имен классов или вы можете получить доступ только к данным домашней или выездной команды. Будьте осторожны, вы должны использовать find_elements
, а не find_element
, поскольку в таких выборках в тегах будет несколько данных.
В приведенном мной примере вы можете получить доступ только к данным желтой карточки. Наконец, когда вы указываете более одного имени класса, поставьте точку (.) Между ними.
Комментарии:
1. Отлично, что это работает, я бы добавил минуту этих элементов в каждый столбец. Это возможно?
2. Вы можете найти его по имени класса тега span, в котором находится минута.
i.find_element_by_class_name("time-box-wide")
. я не пробовал это, но надеюсь, что это сработает 🙂