Как извлечь содержимое ссылки исключив ссылки в теге?

Есть html
<span>
     <a href="/services/service1/">Сервис1</a>
</span>,
<span>
     <strike>
            <a href="/services/service2/">Сервис2</a>
     </strike>
</span>
<span>
     <a href="/services/service3/">Сервис3</a>
</span>,
<span>
     <strike>
            <a href="/services/service4/">Сервис4</a>
     </strike>
</span>

Как найти все ссылки которые НЕ находятся в теге <strike> ?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
hottabxp
@hottabxp
Эксперт по BeautifulSoup(но это не точно!)
Можно использовать decompose() - метод удаляет тег из дерева, а затем полностью уничтожает его вместе с его содержимым.
strikes = soup.find_all('strike')	# Ищем все теги strike

	for strike in strikes:
		strike.decompose()		# Удаляем все теги strike из дерева

	soup2 = soup.find_all('a')	       # Теперь в обьекте soup DOM дерево без  тегов strike
	for x in soup2:
		print(x.get('href'))		# Ищем все ссылки

Вывод:
/services/service1/
/services/service3/

Бонус:
Перевод документации Beautiful Soup на русский язык.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы