Python的url解析库--urlparse

来自linux中国网wiki
Evan讨论 | 贡献2024年9月9日 (一) 01:57的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索
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中。


see also

Python urlparse函数详解

Python的url解析库--urlparse