python 版本3.6

1.urlparse
定义:def urlparse(url, scheme=”, allow_fragments=True)
将url拆分成六大组件

#!/usr/bin/evn python"测试urlparse"#导入parse模块
from urllib import parseurp = parse.urlparse('http://www.baidu.com:80/doc?age=5#ff')print(urp)
#result:
ParseResult(scheme='http', netloc='www.baidu.com:80', path='/doc', params='', query='age=5', fragment='ff')print(urp.scheme)
#result:
http

疑问:params是干什么的?有什么用?怎么才能有了值呢?
2.urlunparse
定义:def urlunparse(components)
功能:将拆分的组件合并为url

#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parsepr = parse.ParseResult(scheme='http', netloc='www.baidu.com:80', path='/doc', params='fd;ff', query='age=5', fragment='ff')print(parse.urlunparse(pr))
#result:
http://www.baidu.com:80/doc;paramsstr?age=5#ff

疑问解答:
更在path后面的;str就是params ,但是是干什么用的呢?

  1. urlsplit
    定义:urlsplit(url, scheme=”, allow_fragments=True)
    返回:(scheme, netloc, path, query, fragment) 比urlparse少个params
    示例:
#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parsesr = parse.urlsplit('http://www.baidu.com:80/doc?age=5#ff')print(sr)
#result
SplitResult(scheme='http', netloc='www.baidu.com:80', path='/doc', query='age=5', fragment='ff')
  1. urlsplit
    定义:urlsplit(url, scheme=”, allow_fragments=True)
    返回:(scheme, netloc, path, query, fragment) 比urlparse少个params
    示例:
#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parsesr = parse.SplitResult(scheme='http', netloc='www.baidu.com:80', path='/doc', query='age=5', fragment='ff')print(parse.urlunsplit(sr))
#result
http://www.baidu.com:80/doc?age=5#ff

5.urljoin
定义:def urljoin(base, url, allow_fragments=True)

如果url是完整的url路径直接返回

#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parse#相对路径
parse.urljoin('http://www.baidu.com/doc/article.html','excel/1')
# result: http://www.baidu.com/doc/excel/1
parse.urljoin('http://www.baidu.com/doc/article.html','../excel/1')
# result: http://www.baidu.com/excel/1#绝对路径
parse.urljoin('http://www.baidu.com/doc/abc/article.html','/excel/1')
#result: http://www.baidu.com/excel/1

6.urldefrag
定义:def urldefrag(url)
功能:把#后边的东西和前面的分开 (个人理解)

#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parseud = parse.urldefrag('http://www.baidu.com/doc/article.html#doc')print(ud)result:
DefragResult(url='http://www.baidu.com/doc/article.html', fragment='doc')

7.quote |quote_from_bytes
定义:quote(string, safe=’/’, encoding=None, errors=None)
功能:转码特殊字符,准确的说叫保留字符,下面已列出
“;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” |”$” | “,”

#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parseprint(parse.quote('http://www.baidu.com/doc/sub.html?name=han jian&age=45@;+$'))
#result:http%3A//www.baidu.com/doc/sub.html%3Fname%3Dhan%20jian%26age%3D45%40%3B%2B%24#safe 将不被转码
print(parse.quote('http://www.baidu.com/doc/sub.html?name=han jian&age=45@;+$','/+$'))
#result:http%3A//www.baidu.com/doc/sub.html%3Fname%3Dhan%20jian%26age%3D45%40%3B+$

8.quote_plus,非常类似于quote只不过是将空格转码为+

9.unquote|unquote_to_bytes
定义:def unquote(string, encoding=’utf-8’, errors=’replace’)
功能:quote的逆过程

#!/usr/bin/evn python"测试urlunparse"#导入parse模块
from urllib import parseprint(parse.unquote('http%3A//www.baidu.com/doc/sub.html%3Fname%3Dhan%20jian%26age%3D45%40%3B+$'))#result:http://www.baidu.com/doc/sub.html?name=han jian&age=45@;+$

10.unquote_plus
定义:def unquote_plus(string, encoding=’utf-8’, errors=’replace’)
功能:quote_plus的逆过程

11.urlencode
定义:urlencode(query, doseq=False, safe=”, encoding=None, errors=None,quote_via=quote_plus)
功能:将字典形式的数据转化成查询字符串
参数的含义:
query:需要转化的字典数据
doseq:如果字典的某个值是序列的话是否解析,deseq值为False不解析doseq的值为True的时候解析,稍后在例子中给出
safe:那些字符串不需要编码
encoding:要转化成的字符串的编码
quote_via:使用quote编码还是qutoe_plus编码,默认quote_plus也就是空格被转化成+号

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"urlencode 测试"from urllib import parse#定义要转化的字典数据
qdict = {'age':34,'grils':('lili','tingting'),'name':'han p$'}print(parse.urlencode(qdict))#result:
#age=34&grils=%28%27lili%27%2C+%27tingting%27%29&name=han+p%24#怎么让两个女朋友分开呢
print(parse.urlencode(qdict,True))#result
#age=34&grils=lili&grils=tingting&name=han+p%24#怎么让name里边的$不要编码呢
print(parse.urlencode(qdict,True,'$'))#result
age=34&grils=lili&grils=tingting&name=han+p$#怎么让空格不编码成+而编译成%20呢
print(parse.urlencode(qdict,True,'$',quote_via=parse.quote))
#由于前面还有两个位置参数所以使用关键字参数
#result
age=34&grils=lili&grils=tingting&name=han%20p$

12.
定义: unwrap(url):
“”“unwrap(‘

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splittype 测试"from urllib import parse
print(parse.splithost('//www.baidu.com:90/doc/h.html'))#result:
#('http', '//wwww.baidu.com')

14.splithost
定义:splithost(url)
功能:将协议名和后面的网址分开

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splithost测试"from urllib import parse
print(parse.splithost('//www.baidu.com:90/doc/h.html'))
#为什么要要求//开头呢?我估计是可以用splittype的结果
#result:
#('www.baidu.com:90', '/doc/h.html')

15.splituser
定义:splituser(url)
功能:用户信息和网址信息分开

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splituser 测试"from urllib import parse
print(parse.splituser ('han.ji:dd@163.com'))#result:
#('han.ji:dd', '163.com')
#可以见得如果想将用户名和密码分开还的splitpasswd

16.splitpasswd
定义:splitpasswd
功能:将用户名和密码分开

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splitpassword 测试"from urllib import parse
print(parse.splitpasswd('han.ji:dd'))#result:
#('han.ji', 'dd')

17,splitport
定义:splitport(host)
功能:将网址和端口号分开,这个有个要求端口号后面不能有任何东西

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splitport测试"from urllib import parse
print(parse.splitport('http://www.baidu.com:80'))#result:
#('http://www.baidu.com', '80')

18.splitquery
定义:splitquery(url)

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splitquery测试"from urllib import parse
print(parse.splitquery('http://www.baidu.com:80?dd=88'))#result:
#('http://www.baidu.com:80', 'dd=88')

19.splittag

def splittag(url):"""splittag('/path#tag') --> '/path', 'tag'."""path, delim, tag = url.rpartition('#')if delim:return path, tagreturn url, None

功能:用#切割字符串

20.splitattr
定义


def splitattr(url):"""splitattr('/path;attr1=value1;attr2=value2;...') ->'/path', ['attr1=value1', 'attr2=value2', ...]."""words = url.split(';')return words[0], words[1:]

21.
定义:

def splitvalue(attr):"""splitvalue('attr=value') --> 'attr', 'value'."""attr, delim, value = attr.partition('=')return attr, (value if delim else None)

功能:切割键和值

#!/usr/bin/env python3
# -*- coding:utf-8 -*-"splitvalue测试"from urllib import parse
print(parse.splitvalue('dd=89'))#result:
#('dd', '89')

urllib的parse模块相关推荐

  1. 爬虫urllib库parse模块的urlparse详解

    一 点睛 urllib库里还提供了parse这个模块,它定义了处理URL的标准接口,例如实现URL各部分的抽取.合并以及链接转换. 它支持如下协议的URL处理:file.ftp.gopher.hdl. ...

  2. urllib库parse模块的使用

    官方文档 转载于:https://www.cnblogs.com/vector-wyw/p/10416010.html

  3. 利用python爬虫(part2)--urllib.parse模块

    学习笔记 文章目录 URL地址编码模块 作用 常用的方法 urllib.parse.utlencode({dict}) urllib.parse.quote(string)编码 urllib.pars ...

  4. python中urllib.parse啥意思_python-urllib.parse模块简述

    前言 小编最近在编写接口自动化测试用例的过程中,需要将get请求url中的部分参数替换成预设的数据,将url中的具有时效性的auth替换成auth生成方法返回值.经过一番调研,最后选取了python的 ...

  5. urllib库(二)parse模块:urlparse()/urlsplit(),parse_qs()/parse_qsl(),urlunparse()/urlunsplit(),urlencode()

    urllib.parse模块用于解析URL,支持对URL的操作包括拆分.拼接.编码.解码等. urllib.parse模块在功能上分为两大类:URL parsing(URL解析)和URL quotin ...

  6. Python爬虫核心知识-第二章:2.2 爬虫urllib.parse模块

    Python爬虫核心知识 第二章:2.2 爬虫urllib.parse模块 2.2 爬虫urllib.parse模块 Python中的urllib.parse模块中,提供了很多用来解析和重组URL的函 ...

  7. 爬虫 :urllib库的用法,关于 request,parse模块总结

    urllib库 它是python内置的请求库,包括 request ,error ,parse,robotparse. 这里主要介绍request 和parse模块. request 它是HTTP请求 ...

  8. Python之urllib爬虫-request模块和parse模块详解

    文章目录 urllib request模块 访问URL Request类 其他类 parse模块 解析URL 转义URL robots.txt文件 urllib urllib是Python中用来处理U ...

  9. urllib.parse模块

    urllib.parse模块 python中提供urllib.parse模块用来编码和解码,分别是urlencode()与unquote() 编码urlencode() # 导入parse模块 fro ...

最新文章

  1. linux 登录 忘记密码,redhat linux忘记登陆密码之解决办法
  2. 总结:二分法题目汇总 以及二分法模板
  3. PHP中使用ActiveMQ实现消息队列
  4. SECRET SHARING STEP BY STEP
  5. vue 的elementui中select下拉框多选项-multiple属性
  6. 电气期刊论文实现:考虑斜坡约束、开停机时间约束的电力机组组合(程序讲解)
  7. 变局之际,聊聊物联网的过去、现在和未来
  8. MQ 之 RocketMQ
  9. 【实践驱动开发3-001】TI WL1835MODCOM8 在android的移植 - 准备
  10. 木兰编程语言重现——支持列表操作,演示编辑器高亮
  11. mysql配置文件my.cnf解析
  12. Keras网络层之“关于Keras的层(Layer)”
  13. Stylus Loader has been initialized using an options object that does not match the API schema.
  14. English语法_分词 - 概述
  15. HTML从入门到入土 - CSS基础
  16. springboot自动装配原理
  17. UU快修-家电维修网点综合查询平台
  18. 利弗莫尔的操作系统到底是怎样的?
  19. colbat strike 安装注意事项
  20. 微软最走运/倒霉的十个瞬间

热门文章

  1. 小程序开发需要学什么语言呢?看看吧
  2. Python实现直方图梯度提升分类模型(HistGradientBoostingClassifier算法)并基于网格搜索进行优化同时绘制PDP依赖图项目实战
  3. 【深度学习】非常详细 | 用 Pytorch 理解卷积网络
  4. 如何在C语言中添加自己的函数
  5. 计算机网络之网络层7
  6. mysql limit括号_MYSQL中LIMIT使用简介
  7. 开源自助BI工具,傻瓜式BI分析,支持多种数据源
  8. word中如何设置奇偶页不同的页眉和页脚,怎么从指定页开始加页码
  9. 移动平台开发工程训练
  10. 【Linux系统】Linux EXT2文件系统