Методы извлечения ссылок из текста в Python: регулярные выражения, Beautiful Soup и urllib.parse

Чтобы извлечь ссылки из текста в Python, вы можете использовать различные методы. Вот несколько подходов с примерами кода:

Метод 1: использование регулярных выражений

import re
def extract_links(text):
    pattern = r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
    links = re.findall(pattern, text)
    return links
# Example usage
text = "Here is a link to our website: https://example.com"
links = extract_links(text)
print(links)

Метод 2: использование Beautiful Soup (для анализа HTML)

from bs4 import BeautifulSoup
def extract_links_from_html(html):
    links = []
    soup = BeautifulSoup(html, 'html.parser')
    for link in soup.find_all('a'):
        href = link.get('href')
        if href:
            links.append(href)
    return links
# Example usage
html = "<html><body><a href='https://example.com'>Visit our website</a></body></html>"
links = extract_links_from_html(html)
print(links)

Метод 3: использование модуля urllib.parse

from urllib.parse import urlparse
def extract_links_from_text(text):
    links = []
    words = text.split()
    for word in words:
        parsed = urlparse(word)
        if parsed.scheme and parsed.netloc:
            links.append(word)
    return links
# Example usage
text = "Here is a link to our website: https://example.com"
links = extract_links_from_text(text)
print(links)

Это всего лишь несколько примеров того, как можно извлекать ссылки из текста в Python. Вы можете выбрать метод, который соответствует вашему конкретному случаю использования.