“Python的url解析库--urlparse”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
docker>Evan
 
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
 
<pre>
 
<pre>
 +
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。每个元组项都是一个字符串,可能是空的。组件不会在较小的部分分解(例如,网络位置是单个字符串),并且%转义不会展开。如上所示的分隔符不是结果的一部分,除了路径组件中的前导斜杠,如果存在则保留。
 
将URL解析为六个组件,返回一个6元组。这对应于URL的一般结构:scheme:// netloc / path; parameters?query#fragment。每个元组项都是一个字符串,可能是空的。组件不会在较小的部分分解(例如,网络位置是单个字符串),并且%转义不会展开。如上所示的分隔符不是结果的一部分,除了路径组件中的前导斜杠,如果存在则保留。

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