📜  python 验证 url - Python (1)

📅  最后修改于: 2023-12-03 15:19:12.561000             🧑  作者: Mango

Python 验证 URL

在 Web 应用程序开发中,URL 是组成 Web 应用程序的重要组成部分。在编写 Web 应用程序时,经常需要对 URL 进行验证,以确保 URL 符合我们的要求,例如符合标准的 URL 格式,包含正确的参数等等。Python 提供了丰富的内置库和第三方库,可以帮助我们验证 URL。

使用 Python 内置库 urllib

Python 内置库 urllib 提供了一个 parse 子模块,该模块包含了多个函数,可以帮助我们解析和验证 URL。

验证 URL 格式

使用 urllib.parse 中的 urlparse() 函数可以将 URL 分解成 6 个部分:协议、网络位置、路径、参数、查询和片段。如果要验证 URL 是否符合标准的 URL 格式,可以使用 urlparse() 函数并尝试获取网络位置(netloc)部分,如果不能获取就说明 URL 格式不正确。

from urllib.parse import urlparse

def is_valid_url(url):
    try:
        result = urlparse(url)
        return all([result.scheme, result.netloc])
    except ValueError:
        return False
  
# 测试
print(is_valid_url("https://www.baidu.com")) # True
print(is_valid_url("ftp://ftp.gnu.org")) # True
print(is_valid_url("http://127.0.0.1:8000")) # True
print(is_valid_url("invalidurl")) # False
验证 URL 有效性

使用 Python 内置库 urllib.request 可以向服务器发出请求,进而验证 URL 的有效性。例如,你可以使用 Python 获取指定 URL 的内容:

import urllib.request

def is_valid_url(url):
    try:
        urllib.request.urlopen(url)
        return True
    except:
        return False

# 测试
print(is_valid_url("https://www.baidu.com")) # True
print(is_valid_url("http://invalidurl.com")) # False
使用第三方库 validators

第三方库 validators 是一款常用的 Python URL 验证库,提供了丰富的 URL 验证函数。安装命令:

pip install validators
验证 URL 格式

使用 validators.url() 函数可以验证 URL 是否符合标准的 URL 格式:

import validators

def is_valid_url(url):
    return validators.url(url)

# 测试
print(is_valid_url("https://www.baidu.com")) # True
print(is_valid_url("invalidurl")) # False
验证 URL 有效性

使用 validators.internet.available() 函数可以验证指定的 URL 是否可用。

import validators

def is_valid_url(url):
    return validators.internet.available(url)

# 测试
print(is_valid_url("https://www.baidu.com")) # True
print(is_valid_url("http://invalidurl.com")) # False

总结:在 Python 中,验证 URL 非常容易,内置库 urllib 提供了能力强大的 URL 解析和请求库,第三方库 validators 提供了简单易用的 URL 验证函数。