Задать вопрос
@ekzotika

Как найти ссылку в строке полностью?

Мне необходимо найти и вырезать нужную ссылку в строке. Сейчас я нахожу ссылки так:

pattern = r'<a rel="(.+?)">'
s = re.findall(pattern, item.content)

Прохожусь циклом

for string in s:
...

Но далее мне нужно после определенного условия, если оно выполняется, удалять именно эту string из item.content, при том чтобы осталось название ссылки, которое видно на странице. Подскажите, как это сделать?
  • Вопрос задан
  • 279 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@devdb
Как вариант (не единственно возможное решение):
pattern = r'(<a rel=")(.+?)(">)'
splitted = re.split( pattern, html_str ) 
# splitted == [ '<html>...', '<a rel="', 'http://site.com/image1.jpg', '">', '<div>...', '<a rel="', 'http://site.com/image2.jpg', '">', ... ]
urls = splitted[2::4]
# urls == ['http://site.com/image1.jpg', 'http://site.com/image2.jpg', ... ]


Далее проходите по splitted в цикле с шагом 4, и, если image не удовлетворяет условию, удаляете текущие [ '<a rel="', 'http://site.com/image2.jpg', '">' ] из списка splitted или заменяете их на что-то (например, на "название ссылки").

А после чистки:
cleaned_html_str = ''.join(splitted)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽