发布于 2011-03-29 20:08:52
直接从the docs you linked yourself
urllib.parse.urlsplit(urlstring, scheme='', allow_fragments=True)
这类似于urlparse()
,但不会将参数与URL分开。如果需要更新的URL语法,允许将参数应用于URL的路径部分的每个段(参见RFC2396),则通常应使用此方法而不是urlparse()
。
发布于 2015-05-01 10:57:42
称为
urlparse.urlparse
返回6元组(带有附加参数元组)
urlparse.urlsplit
返回5元组
属性属性|索引|值不存在的情况下
params _|_3个参数|最后一个路径元素的参数|空字符串
仅供参考:根据RFC2396的说法,_parameter_在URL规范>对当前客户端应用程序的广泛测试中表明,大多数已部署的系统不使用";“字符来表示尾随参数信息,并且路径段中存在的分号不会影响该段的相对解析。因此,参数已作为单独的组件删除,现在可以出现在任何路径段中。它们的影响已从解析相对URI引用的算法中移除。
发布于 2020-08-07 02:36:04
由于您链接的文档没有包含一个带有非空params
的示例,在我找到this之前,我也感到困惑。
>>> urllib.parse.urlparse("http://example.com/pa/th;param1=foo;param2=bar?name=val#frag")
ParseResult(scheme='http', netloc='example.com', path='/pa/th', params='param1=foo;param2=bar', query='name=val', fragment='frag')
(一些历史,因为我被书呆子狙击了。)
除了URL组件参数,即/user/213/settings
或查询参数/user?id=213
之外,我从未听说过url“参数”,我认为它基本上已经过时了。
一开始,RFC1738对HTTP URL执行defined命令,使其永远不允许path
中的;
http://<host>:<port>/<path>?<searchpart>
<path>
和<searchpart>
组件中的
,"/",";","?“是保留的。
在其他方案中,like ;
:// url-path
保留了有特殊含义的ftp
<cwd1>/<cwd2>/.../<cwdN>/<name>;type=<typecode>
显然是在1995年,RFC1808 defined URL params
作为path
和query
之间的顶级组件
<scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
然后在1998年,RFC2396 defined URI具有相邻的顶级组件path
和query
<scheme>://<authority><path>?<query>
其中,path
被defined为多个path_segments
,每个都可以包括param
path = [ abs_path | opaque_part ]
abs_path = "/" path_segments
path_segments = segment *( "/" segment )
segment = *pchar *( ";" param )
最后在2005年,RFC3986淘汰了RFC1808和2396,与RFC2396类似的defining URI
:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty
/ path-absolute
/ path-rootless
/ path-empty
;params
的特殊语法是considered,这是URI语法中不透明的部分,可能特定于HTTP(S)方案,也可能只是一些特定的实现:
除了分层路径中的点段之外,通用语法认为路径段是不透明的。URI生成应用程序通常使用段中允许的保留字符来分隔特定于方案或特定于解引用处理程序的子组件。例如,分号(";")和等号("=")保留字符通常用于分隔适用于该段的参数和参数值。逗号(",")保留字符通常用于类似的目的。例如,一个URI生产者可能使用诸如"name;v=1.1“之类的片段来指示对"name”版本1.1的引用,而另一个生产者可能使用诸如"name,1.1“之类的片段来指示相同的内容。参数类型可以由特定于方案的语义来定义,但在大多数情况下,参数的语法是特定于URI的取消引用算法的实现的。
https://stackoverflow.com/questions/5472160
复制相似问题