1、Python2中解析参数、端口、协议及路径
#!/usr/bin/env python# encoding: utf-8import urllibimport urlparse#原文地址:https://www.wonhero.com/article/2538/proto, rest = urllib.splittype("http://192.168.31.11:8081/11/12.htm")print(proto, rest) # ('http', '//192.168.31.11:8081/11/12.htm')host, rest = urllib.splithost(rest)print(host, rest) # ('192.168.8.24:8161', '/11/12.htm')host, port = urllib.splitport(host)if port is None: port =80print(host, port)url="http://192.168.31.11:8080/artcle/11.html?user=1&token=b7daea86ac024581bf5b8c36cdae3e5d"param = urlparse.parse_qs(urlparse.urlsplit(url).query)print("参数:user={0},token={1}".format(param["user"][0],param["token"][0]))_url = urlparse.urlparse(url)hostname = _url.hostnameport = _url.porturl_port = _url.netlocurl_path = _url.pathurl_protocol = _url.schemeprint('域名:{0}\n端口:{1}\n域名+端口:{2}\n域名路径地址:{3}\n域名协议:{4}'.format(hostname,port,url_port,url_path,url_protocol))
2、Python2中解析参数、端口、协议及路径
import urllib.parsefrom urllib.parse import urlparse#原文地址:https://www.wonhero.com/article/2538/"""proto, rest = urllib.parse.splittype("http://192.168.31.11:8081/11/12.htm")print(proto, rest) # ('http', '//192.168.31.11:8081/11/12.htm')host, rest = urllib.parse.splithost(rest)print(host, rest) # ('192.168.8.24:8161', '/11/12.htm')host, port = urllib.parse.splithost(host)print(urllib.parse.urlparse(host))if port is None: port =80print(host, port)"""url="http://192.168.31.11:8080/artcle/11.html?user=1&token=b7daea86ac024581bf5b8c36cdae3e5d"param = urllib.parse.parse_qs(urllib.parse.urlsplit(url).query)print("参数:user={0},token={1}".format(param["user"][0],param["token"][0]))_url = urlparse(url)hostname = _url.hostnameport = _url.porturl_port = _url.netlocurl_path = _url.pathurl_protocol = _url.schemeprint('域名:{0}\n端口:{1}\n域名+端口:{2}\n域名路径地址:{3}\n域名协议:{4}'.format(hostname,port,url_port,url_path,url_protocol))