#python #selenium #xpath #web-scraping #linked-list
#питон #селен #xpath #очистка веб-страниц #связанный список #python #selenium
Вопрос:
У меня есть это html-дерево в веб-приложении:
Я очистил весь текст от названий всех лиг.
Но мне также нужен XPATH или любой индикатор, чтобы я мог сообщить selenium: если я выберу, например, EFL League Two (ENG 4) в своем графическом интерфейсе, например, из выпадающего меню, затем используйте соответствующий xpath, чтобы выбрать правильную лигу в веб-приложении.
Я понятия не имею, как я мог бы извлечь XPATCH из этого дерева или какое-либо другое решение, которое можно было бы использовать для моего сценария.
Есть идеи, как я мог бы это исправить?
Если я попытаюсь извлечь ‘href’, он напечатает просто «None».
Это мой код на данный момент:
def scrape_test():
leagues = []
#click the dropdown menue to open the folder with all the leagues
league_dropdown_menu = driver.find_element_by_xpath('/html/body/main/section/section/div[2]/div/div[2]/div/div[1]/div[1]/div[7]/div')
league_dropdown_menu.click()
time.sleep(1)
#get all league names as text
scrape_leagues = driver.find_elements_by_xpath("//li[@class='with-icon' and contains(text(), '')]")
for league in scrape_leagues:
leagues.append(league.text)
print('n')
# HERE I NEED HELP! - I try to get a link/xpath for each corresponding league to use later with selenium
scrape_leagues_xpath = driver.find_elements_by_xpath("//li[@class='with-icon']")
for xpath in scrape_leagues_xpath:
leagues.append(xpath.get_attribute('xpath')) #neither xpath, text, href is working here
print(leagues)
Комментарии:
1. добавьте html как часть публикации, а не изображения
Ответ №1:
li
у узла нет text
, href
или xpath
(я не думаю, что это допустимый атрибут HTML). Вы можете очистить и проанализировать @style
.
Попробуйте использовать этот подход для извлечения URL-адреса фонового изображения
leagues.append(xpath.get_attribute('style').strip('background-image:url("').rstrip('");'))
Комментарии:
1. именно то, что мне было нужно! Спасибо!