统一资源定位符 / URL
目录
统一资源定位符(Uniform Resource Locator) 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。现在已经被万维网联盟编制为互联网标准 RFC1738。
URL的基本格式为,prot_sch://net_loc/path;params?query#frag
各部分组件含义如下,
|
URL组件 |
描述 |
|
prot_sch |
网络协议或下载方案,如HTTP/FTP等 |
|
net_loc |
服务器所在地,如www.xxx.com/localhost |
|
path |
使用斜杠(/)分割的文件或CGI路径 |
|
params |
可选参数 |
|
query |
连接符&分隔的一系列键值对 |
|
frag |
指定文档内特定锚的部分 |
其中net_loc的基本格式为,user:passwd@host:port
各部分组件含义如下,
|
组件 |
描述 |
|
user |
用户名或登录 |
|
passwd |
用户密码 |
|
host |
运行Web服务器的计算机名称或地址(必需的) |
|
params |
端口号(如果没有则默认80) |
在这4个组件中,host是最重要的,port只有在Web服务器运行在非默认端口的情况下才会使用,而用户名和密码只有在FTP连接时才会使用,而即使是FTP大多也都是使用匿名的,此时无需用户名和密码。
对于URL的解析可以使用urllib中的parse模块来进行,
完整代码
1 from urllib import parse 2 3 # urlparse --> urllib.parse since python 3.0 4 5 # urlparse 6 print(parse.urlparse('http://blog.csdn.net/hxsstar/article/details/17240975')) 7 # ParseResult(scheme='http', netloc='blog.csdn.net', path='/hxsstar/article/details/17240975', params='', query='', fragment='') 8 print(parse.urlparse('http://www.python.org/doc/FAQ.html')) 9 # ParseResult(scheme='http', netloc='www.python.org', path='/FAQ.html', params='', query='', fragment='') 10 11 # urlunparse 12 # http://blog.csdn.net/hxsstar/article/details/17240975 13 print(parse.urlunparse(parse.urlparse('http://blog.csdn.net/hxsstar/article/details/17240975'))) 14 print(parse.urlunparse(parse.ParseResult(scheme='http', netloc='blog.csdn.net', path='/hxsstar/article/details/17240975', params='', query='', fragment=''))) 15 16 # urljoin 17 # urljoin will join schema, net_loc and part of path of baseurl, with new url 18 print(parse.urljoin('http://www.python.org/doc/FAQ.html', 'current/lib/lib.html')) 19 # http://www.python.org/doc/current/lib/lib.html