Проверьте, является ли строка URL-адресом в Python

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

  1. Регулярное выражение.
    Вы можете использовать регулярные выражения для сопоставления шаблонов URL-адресов. Модуль reв Python обеспечивает функцию сопоставления с образцом. Вот пример:

    import re
    def is_url(string):
       url_pattern = re.compile(r"https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+")
       return bool(re.match(url_pattern, string))

    Эта функция использует шаблон регулярного выражения для сопоставления URL-адресов, начинающихся с «http://» или «https://».

  2. Модуль urlparse:
    Другой метод — использовать модуль urlparseиз библиотеки urllib.parse. Вы можете проверить, имеет ли данная строка действительную схему URL. Вот пример:

    from urllib.parse import urlparse
    def is_url(string):
       parsed_url = urlparse(string)
       return parsed_url.scheme in ["http", "https"]

    Эта функция анализирует URL-адрес с помощью urlparseи проверяет, является ли схема «http» или «https».

  3. Попробуйте-кроме urllib:
    Вы также можете попробовать открыть URL-адрес с помощью модуля urllib.request. Если возникает исключение, это означает, что строка не является допустимым URL-адресом. Вот пример:

    import urllib.request
    def is_url(string):
       try:
           urllib.request.urlopen(string)
           return True
       except:
           return False

    Эта функция пытается открыть указанный URL-адрес с помощью urllib.request.urlopen(). Если возникает исключение, это означает, что строка не является допустимым URL-адресом.