Python---关于URL的处理(基于Python2.7版本)

1、完整的url语法格式:

       协议://用户名@密码:子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标识

2、urlparse模块对url的处理方法 

# -*- coding:utf-8 -*-
import urlparse

# 利用urlparse()方法对url进行解析,返回六元组;urlunparse()对六元组进行组合。
url = "http://username@password:www.baidu.com/s?name=liu&age=12"
res = urlparse.urlparse(url)
print res, type(res)      # <class 'urlparse.ParseResult'>即元组
res = urlparse.urlunparse(res)
print res, type(res)      # <type 'str'>

# # 利用urljoin()方法对绝对url地址与相对url地址进行拼合
url = ("http://www.baidu.com", "index.html")
url = urlparse.urljoin(url[0], url[1])
print url      # http://www.baidu.com/index.html          

# 利用urlsplit()方法可以对URL进行分解;与urlparse()相比,urlsplit()函数返回一个五元组,没有parameter参数。
url = "http://username@password:www.baidu.com/s?name=liu&age=12"
res = urlparse.urlsplit(url)
print res, type(res)      # <class 'urlparse.SplitResult'>即元组
res = urlparse.urlunsplit(res)
print res, type(res)      # <type 'str'>

3、urllib模块对url的编码与解码

# -*- coding:utf-8 -*-
import urllib

url = 'http://www.baidu.com/s'
values = {"name": "liu", "age": 12, "love": "游戏"}

params = urllib.urlencode(values)
print params, type(params)      # age=12&love=%E6%B8%B8%E6%88%8F&name=liu  <type 'str'>                           
result = urllib.unquote(params)
print result, type(result)      # age=12&love=游戏&name=liu  <type 'str'>
print url + '?' + params        # http://www.baidu.com/s?age=12&love=%E6%B8%B8%E6%88%8F&name=liu

a = urllib.quote("游戏")
b = urllib.unquote(a)
print a, type(a)      # %E6%B8%B8%E6%88%8F  <type 'str'>
print b, type(b)      # 游戏  <type 'str'>

# 参考:https://blog.csdn.net/haoni123321/article/details/15814111/
# 参考:https://blog.csdn.net/vinson0526/article/details/51745491
# 参考:https://blog.csdn.net/tycoon1988/article/details/40514555
# 参考:https://www.jb51.net/article/92818.htm

https://blog.csdn.net/qq_33472765/article/details/81050209

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值