urllib.parse —将URL解析为Python中的组件
此模块提供了一个标准接口,用于中断组件中的统一资源定位符(URL)字符串或将组件组合回URL字符串。它还具有将给定“基本URL”的“相对URL”转换为绝对URL的功能。
此模块支持以下URL方案-
file
ftp
gopher
hdl
http
https
imap
mailto
mms
news
nntp
prospero
rsync
rtsp
rtspu
sftp
shttp
sip
sips
snews
svn
svn+ssh
telnet
wais
ws
wss
urlparse()
此函数将URL解析为六个部分,返回一个6元组。这对应于URL的一般结构。每个元组项目都是一个字符串。组件不会分成较小的部分(例如,网络位置是单个字符串),并且%转义符不会扩展。返回值是由以下属性组成的元组子类的实例:
示例
>>> from urllib.parse import urlparse >>> url = 'https://mail.google.com/mail/u/0/?tab = rm#inbox' >>> t = urlparse(url) ParseResult(scheme = 'https', netloc = 'mail.google.com', path = '/mail/u/0/', params = '', query = 'tab = rm', fragment = 'inbox')
urlunparse(parts)
urlparse()函数根据返回的元组构造URL。parts参数可以是任何六项可迭代的。
>>> from urllib.parse import urlunparse >>> urlunparse(t) 'https://mail.google.com/mail/u/0/?tab = rm#inbox' urlsplit(urlstring, scheme = '', allow_fragments = True):
这类似于urlparse(),但不会从URL拆分参数。该函数返回一个5元组:(寻址方案,网络位置,路径,查询,片段标识符)。
>>> from urllib.parse import urlsplit >>> urlsplit(url) SplitResult(scheme = 'https', netloc = 'mail.google.com', path = '/mail/u/0/', query = 'tab = rm', fragment = 'inbox')
urlunsplit(parts)
此函数将返回的元组元素组合urlsplit()为完整的URL作为字符串。
URL引用功能着重于获取程序数据并通过引用特殊字符并适当地编码非ASCII文本来使其安全地用作URL组件。
quote()
此函数使用%xx转义符替换字符串中的特殊字符。字母,数字和字符“_.-〜”都不会被引用。
>>> from urllib.parse import quote >>> q = quote(url) 'https%3A//mail.google.com/mail/u/0/%3Ftab%3Drm%23inbox' quote_plus():
与一样quote(),也可以用加号替换空格,这是建立查询字符串以进入URL时引用HTML表单值所必需的。
unquote()
此函数用单字符等效项替换%xx转义。
>>> from urllib.parse import unquote >>> unquote(q) 'https://mail.google.com/mail/u/0/?tab = rm#inbox'
urlencode()
此函数将映射对象或两个元素的元组序列转换为百分比编码的ASCII文本字符串。结果字符串是由“&”字符分隔的一系列键=值对。
>>> from urllib.parse import urlencode >>> qry = {"name":"Rajeev", "salary":20000} >>> urlencode(qry) 'name = Rajeev&salary = 20000'