Вытащить все нужные ссылки Python
Час добрый
Подскажите пожалуйста как можно вытащить все нужные ссылки примерно из такого текста :
Интернет-магазин "МИР СТРУН" - http://mirstrun.ru/ В этом разборе офигенная новогодняя песня для начинающих, группы СТЕКЛОВАТА - НОВЫЙ ГОД. Разберем на гитаре разными способами. Открой описание! Аккорды и Текст ↓↓↓
Стекловата - Новый год Аккорды - https://www.4chords.ru/2017/12/akkord...
Мои Соц. Сети:
Я ВКонтакте - https://vk.com/stixatvorez
Я в Instagram - http://instagram.com/stixatvorez
Мои песни Вконтакте - https://vk.com/safronovband
В час когда зажигаются свечи.
Тексты берутся с описаний к видео на youtube.
Получать нужно следующие ссылки:
1)Телеграм https://t.me/
2)Инстаграм https://instagram.com/
3)ВК https://vk.ru/
4)Facebook https://facebook.com/
5)Если ни в одно условие не попало, но все таки есть https://, то сохранить в отдельную переменную
Мне предложили попробовать следующий способ, но с таким текстом он не справляется, т.к. там идет проверка конкретно ссылки на наличие нужных слов:
import re
url = ваша ссылка
telegram, instagram, vk, facebook, other = list(), list(), list(), list(), list()
if re.match("https://t.me/", url):
telegram.append(url)
elif re.match("https://instagram.com/", url):
instagram.append(url)
elif re.match("https://vk.ru/", url):
vk.append(url)
elif re.match("https://facebook.com/", url):
facebook.append(url)
elif re.match("https://", url):
other.append(url)
Как можно его переписать чтобы он мог обрабатывать ссылки из примера выше? Весь текст хранится в одной переменной
Или подскажите каким регулярным выражением можно вытащить все ссылки из текста, чтобы потом пройтись по ним описанным выше алгоритмом
Ответы (1 шт):
Я написал для вас регулярное выражение. Оно вернет для вас все ссылки в одном списке.
Вот пример работы:
Код:
import re
text = '''
ЗДЕСЬ ВАШ ТЕКСТ
'''
print(re.findall(r'https?://\S+', text))
Вывод:
['http://mirstrun.ru/',
'https://www.4chords.ru/2017/12/akkord...',
'https://vk.com/stixatvorez',
'http://instagram.com/stixatvorez',
'https://vk.com/safronovband']
Как работает это регулярное выражение?
http- Ищем начало ссылкиs?- Квантификатор после s означает что присутствие s необязательно. То есть, сработает даже наhttp://.://- Конец протокола сайта\S+- Берем все символы которые не являються пробелами.