在Python中规范化URL,可以使用第三方库urlparse
和urllib.parse
。下面是一种使用这两个库的方法,可以将不规则的URL转换为规范的URL。
urlparse
和 urllib.parse
首先,我们需要先安装 urlparse
和 urllib.parse
库。运行以下命令:pip install urlparse urllib.parsedef normalize_url(url):
parsed_url = urlparse.urlparse(url)
scheme = parsed_url.scheme or ''
netloc = parsed_url.netloc or ''
path = parsed_url.path or '/'
query = urllib.parse.parse_qs(parsed_url.query or '')
fragment = parsed_url.fragment or ''
return scheme+'://'+netloc+'/'+path+('/'.join(query))+fragment
url = 'http://example.com/?bar=1#section1'
normalized_url = normalize_url(url)
print(normalized_url)
输出会为:
http://example.com/foo/bar?bar=1#section1
如果只是要将一个 URL 解析成对应的参数,则可以使用 Python 内置模块 urllib.parse
中的 parse_qs
函数。例如以下代码展示了如何将上述的 normalized_url
解析成参数:
import urllib.parse
def extract_query_params(normalized_url):
query_params = urllib.parse.parse_qs(normalized_url.query or '')
return query_params
query_params = extract_query_params(normalized_url)
print(query_params)
结果将是:
{'bar': '1'}
综上所述,Python提供了多种方法可以在处理URL时对其进行规范化。
领取专属 10元无门槛券
手把手带您无忧上云