📅  最后修改于: 2023-12-03 15:19:12.561000             🧑  作者: Mango
在 Web 应用程序开发中,URL 是组成 Web 应用程序的重要组成部分。在编写 Web 应用程序时,经常需要对 URL 进行验证,以确保 URL 符合我们的要求,例如符合标准的 URL 格式,包含正确的参数等等。Python 提供了丰富的内置库和第三方库,可以帮助我们验证 URL。
urllib
Python 内置库 urllib
提供了一个 parse
子模块,该模块包含了多个函数,可以帮助我们解析和验证 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
使用 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
使用 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
使用 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 验证函数。