urlparse模块主要是把url拆分为6部分,并返回元组。并且可以把拆分后的部分再组成一个url。

主要有函数有urljoin、urlsplit、urlunsplit、urlparse、parse_qs等。

urlparse.urlparse(urlstring[, scheme[,allow_fragments]])
将urlstring解析成6个部分,它从urlstring中取得URL,并返回元组 (scheme, netloc, path, parameters, query, fragment),但是实际上是基于namedtuple,是tuple的子类。它支持通过名字属性或者索引访问的部分URL,每个组件是一串字符,也有可能是空的。组件不能被解析为更小的部分,%后面的也不会被解析,分割符号并不是解析结果的一部分,除非用斜线转义,注意,返回的这个元组非常有用,例如可以用来确定网络协议(HTTP、FTP等等 )、服务器地址、文件路径,等等。
>>> import urlparse
>>> parsed_tuple = urlparse.urlparse("http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search")
>>> print parsed_tuple
ParseResult(scheme='http', netloc='www.google.com', path='/search', params='', query='hl=en&q=urlparse&btnG=Google+Search', fragment='')
urlparse.urlunparse(parts)
从一个元组构建一个url,元组类似urlparse返回的,它接收元组(scheme, netloc, path, parameters, query, fragment)后,会重新组成一个具有正确格式的URL,以便供Python的其他HTML解析模块使用。
>>> import urlparse
>>> parsed_tuple = urlparse.urlparse("http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search")
>>> print parsed_tuple
ParseResult(scheme='http', netloc='www.google.com', path='/search', params='', query='hl=en&q=urlparse&btnG=Google+Search', fragment='')
>>> url=urlparse.urlunparse(parsed_tuple)
>>> print url
http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search
urlparse.urlsplit(urlstring[, scheme[, allow_fragments]])
主要是分析urlstring,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。allow_fragments为False时,该元组的组后一个项目总是空,不管urlstring有没有片段,省略项目的也是空。urlsplit()和urlparse()差不多。不过它不切分URL的参数。适用于遵循RFC2396的URL,每个路径段都支持参数。这样返回的元组就只有5个元素。
>>> split_tuple = urlparse.urlsplit("http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search")
>>> print split_tuple
SplitResult(scheme='http', netloc='www.google.com', path='/search', query='hl=en&q=urlparse&btnG=Google+Search', fragment='')
>>> parsed_tuple = urlparse.urlparse("http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search")
>>> print parsed_tuple
ParseResult(scheme='http', netloc='www.google.com', path='/search', params='', query='hl=en&q=urlparse&btnG=Google+Search', fragment='')
urlparse.urlunsplit(parts)
urlunsplit使用urlsplit()返回的值组合成一个url
>>> split_tuple = urlparse.urlsplit("http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search")
>>> print split_tuple
SplitResult(scheme='http', netloc='www.google.com', path='/search', query='hl=en&q=urlparse&btnG=Google+Search', fragment='')
>>> url=urlparse.urlunsplit(split_tuple)
>>> print url
http://www.google.com/search?hl=en&q=urlparse&btnG=Google+Search
urlparse.urljoin(base, url[, allow_fragments])
urljoin主要是拼接URL,它以base作为其基地址,然后与url中的相对地址相结合组成一个绝对URL地址。函数urljoin在通过为URL基地址附加新的文件名的方式来处理同一位置处的若干文件的时候格外有用。需要注意的是,如果基地址并非以字符/结尾的话,那么URL基地址最右边部分就会被这个相对路径所替换。如果希望在该路径中保留末端目录,应确保URL基地址以字符/结尾。
>>> import urlparse
>>> urlparse.urljoin('http://www.google.com/search?','hl=en&q=urlparse')
'http://www.google.com/hl=en&q=urlparse'
>>> urlparse.urljoin('http://www.google.com/search?/','hl=en&q=urlparse')
'http://www.google.com/hl=en&q=urlparse'
>>> urlparse.urljoin('http://www.google.com/search/','hl=en&q=urlparse')
'http://www.google.com/search/hl=en&q=urlparse'
parse_qs(qs, keep_blank_values=False, strict_parsing=False, encoding=‘utf-8’, errors=‘replace’)
解析query,返回词典格式数据,词典的key是query中变量名字,value是对应的值。
参数keep_blank_value标识空值是否识别为一个空字符串。true——空值应该识别为一个空字符串,false(默认值)不把空值识别为字符串。strict_parsing:标识解析失败的时候怎么处理,false(默认值)——忽略失败情况;true——抛出ValueError异常;encoding、errors:指出如何将参数解码为Unicode字符串。
>>> import urlparse
>>> parsed_tuple = urlparse.urlparse("http://www.google.com/search?hl=en&q=urlparse&btnG=")
>>> print parsed_tuple
ParseResult(scheme='http', netloc='www.google.com', path='/search', params='', query='hl=en&q=urlparse&btnG=', fragment='')
>>> urlparse.parse_qs(parsed_tuple.query)
{'q': ['urlparse'], 'hl': ['en']}
>>> urlparse.parse_qs(parsed_tuple.query, True)
{'q': ['urlparse'], 'btnG': [''], 'hl': ['en']}

python-urlparse :解析url相关推荐

  1. urlparse解析url

    python3中urlparse模块和urllib模块合并,urlparse()在urllib.parse中进行调用. urlparse()把url拆分为6个部分,scheme(协议),netloc( ...

  2. Python urlparse方法总结

    Python urlparse用法 这里写目录标题 Python urlparse用法 1.调用库 2.方法总结 该模块定义了一个标准接口,用于分解组件中的统一资源定位符(URL)字符串(协议,域名服 ...

  3. urlparse模块(专门用来解析URL格式)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #urlparse模块(专门用来解析URL格式)#URL格式: #protocol ://hostname[: ...

  4. python爬虫基础扫盲之urllib.pase解析URL

    在笨方法"学习python笔记之urlopen,中提了urllib主要是提供打开网页,解析url等功能用于网络爬虫,其lib主要包含四个部分,其中urllib.parse主要是负责url的解 ...

  5. python中url是什么_怎么在Python中实现URL的解析

    怎么在Python中实现URL的解析 发布时间:2020-08-24 17:56:47

  6. python关键字中文意思_python解析URL中文关键字

    搜索引擎或者APP搜索时,其实生成的http链接中基本都带有UTF8或者其他编码的中文关键字,目前只做了UTF8的,其他编码可以通过字符范围筛选. 以下为解析方法: import urllib imp ...

  7. Python爬虫:URL管理器及其实现方式、网页下载器、网页解析器原理及其实现原理!

    Python爬虫之URL管理器: Python爬虫:URL管理器实现方式: Python爬虫之网页下载器: urllib2实现网页下载器的三种方法: 具体代码:                    ...

  8. python解析url参数_Python3 url解码与参数解析

    在获取zk节点时,有些子节点名字直接就是编码后的url,就像下面这行一样: url='dubbo%3A%2F%2F10.4.5.3%3A20880%2Fcom.welab.authority.serv ...

  9. 爬虫实战学习笔记_3 网络请求urllib模块:设置IP代理+处理请求异常+解析URL+解码+编码+组合URL+URL连接

    1 设置IP代理 1.1 方法论述 使用urllib模块设置代理IP是比较简单的,首先需要创建ProxyHandler对象,其参数为字典类型的代理IP,键名为协议类型(如HTTP或者HTTPS),值为 ...

  10. Python实现从url中提取域名的几种方法

    这篇文章主要介绍了Python实现从url中提取域名的几种方法,本文给出了3种方法实现在URL中提取域名的需求,需要的朋友可以参考下. 从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正 ...

最新文章

  1. 黑马程序员Linux系统开发视频之mmap使用注意事项
  2. 三十二、R语言基本语法(下篇)
  3. 简单说说通讯设备的热设计
  4. PyTorch + NumPy这么做会降低模型准确率?
  5. flume流程之SpoolDir-memory-hdfs
  6. IDENT_CURRENT ,@@identity,SCOPE_IDENTITY() 之间对比
  7. 为什么我们应该像盖房子那样写程序?
  8. Skyline软件二次开发初级——7如何在WEB页面中的三维地图上设置颜色
  9. python实现信号预加重
  10. js实现外链访问劫持代码 可劫持百度快照
  11. 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞
  12. Linux系统(三)系统基础扫盲大全
  13. 360众筹网_360众筹平台
  14. WIN10运行软件,窗口不显示 解决办法
  15. 十字路口待转区什么用_左转待转区的几种违章 稍不注意你绝对就要中招
  16. PHP图片打包压缩下载
  17. 哪个邮箱登录安全?163 VIP邮箱登录入口是哪个?
  18. 设计模式-UML图(细化)
  19. LAMP 技术简介(4)
  20. 什么专业的人适合学嵌入式?

热门文章

  1. Python机器学习--回归算法--线性回归算法
  2. java使用poi导入excel小数被四舍五入问题解决
  3. 如何在服务器上开启无线,如何开启路由器服务
  4. Jmeter压力测试笔记(十三)
  5. 数据太多太凌乱?教你打造一个能看懂表格图片的数据助手
  6. 内网穿透实现原理及三种实现方式
  7. 给电脑重装系统的时间需要多久才能装好
  8. 微信信息同步 ——PC微信
  9. 【死循环警告⚠】i=i++导致的死循环!
  10. 商业公寓坑爹无极限,为啥购买者还是趋之若鹜?