Python的url解析库--urlparse
2024 eg
➜ tmp py3 1.py
80
➜ tmp cat 1.py
from xmlrpc.client import ServerProxy
from os.path import join, isfile
from xmlrpc.server import SimpleXMLRPCServer
from urllib.parse import urlparse
import sys
def get_port(url):
name = urlparse(url)[1]
parts = name.split(':')
return int(parts[-1])
return name
print(get_port('http://192.168.10.2:80'))
➜ tmp
将URL解析为六个组件,返回一个6元组。这对应于URL的一般结构:scheme:// netloc / path; parameters?query#fragment。每个元组项都是一个字符串,可能是空的。组件不会在较小的部分分解(例如,网络位置是单个字符串),并且%转义不会展开。如上所示的分隔符不是结果的一部分,除了路径组件中的前导斜杠,如果存在则保留。
In [5]: url = 'http://localhost:4242'
In [6]: name = urlparse(url)[1]
In [7]: print name
localhost:4242
In [8]: parts = name.split(':')
In [9]: parts[-1]
Out[9]: '4242'
#这个func 从url中提取端口号 P412
如果
In [10]: name = urlparse(url)
In [11]: print name
ParseResult(scheme='http', netloc='localhost:4242', path='', params='', query='', fragment='')
注意:
在Python3中, urlparse已经被移动到urllib.parse中。
在urlparse中有两个函数:urlparse.parse_qs()和urlparse.parse_qsl()。这两个函数都能解析url中的query字段。如果url的query中有同一个key对应多个value,其中urlparse.parse_qs()可以把该相同key的value放在一个list中。