urlparse()

使用urlparse库会将url分解成6部分,返回的是一个元组 (scheme, netloc, path, parameters, query, fragment)。可以再使用urljoin、urlsplit、urlunsplit、urlparse把分解后的url拼接起来。

def urlparse(url, scheme='', allow_fragments=True):"""Parse a URL into 6 components:<scheme>://<netloc>/<path>;<params>?<query>#<fragment>Return a 6-tuple: (scheme, netloc, path, params, query, fragment).Note that we don't break the components up in smaller bits(e.g. netloc is a single string) and we don't expand % escapes."""url, scheme, _coerce_result = _coerce_args(url, scheme)splitresult = urlsplit(url, scheme, allow_fragments)scheme, netloc, url, query, fragment = splitresultif scheme in uses_params and ';' in url:url, params = _splitparams(url)else:params = ''result = ParseResult(scheme, netloc, url, params, query, fragment)return _coerce_result(result)

注意:通过urlparse库返回的元组可以用来确定网络协议(HTTP、FTP等)、服务器地址、文件路径等。

示例代码:

from urllib.parse import urlparseurl = urlparse('http://www.baidu.com/index.php?username=dgw')
print(url)
print(url.netloc)

urlunparse()

使用urlunparse库将一个元组(scheme, netloc, path, parameters, query, fragment)组成一个具有正确格式的URL。

def urlunparse(components):"""Put a parsed URL back together again.  This may result in aslightly different, but equivalent URL, if the URL that was parsedoriginally had redundant delimiters, e.g. a ? with an empty query(the draft states that these are equivalent)."""scheme, netloc, url, params, query, fragment, _coerce_result = (_coerce_args(*components))if params:url = "%s;%s" % (url, params)return _coerce_result(urlunsplit((scheme, netloc, url, query, fragment)))

示例代码:

from urllib.parse import urlparse, urlunparseurl = urlparse('http://www.baidu.com/index.php?username=dgw')
print(url)
url_join1 = urlunparse(url)
print(url_join1)url_tuple = ("http", "www.baidu.com", "index.php", "", "username=dgw", "")
url_join2 = urlunparse(url_tuple)
print(url_join2)

urlsplit()

使用urlsplit库只要用来分析urlstring,返回包含5个参数的元组(scheme, netloc, path, query, fragment)。urlsplit()和urlparse()差不多。不过它不切分URL的参数。

def urlsplit(url, scheme='', allow_fragments=True):"""Parse a URL into 5 components:<scheme>://<netloc>/<path>?<query>#<fragment>Return a 5-tuple: (scheme, netloc, path, query, fragment).Note that we don't break the components up in smaller bits(e.g. netloc is a single string) and we don't expand % escapes."""url, scheme, _coerce_result = _coerce_args(url, scheme)allow_fragments = bool(allow_fragments)key = url, scheme, allow_fragments, type(url), type(scheme)cached = _parse_cache.get(key, None)......

示例代码:

from urllib.parse import urlparse, urlspliturl = urlparse('http://www.baidu.com/index.php?username=dgw')
print(url)url2 = urlsplit('http://www.baidu.com/index.php?username=dgw')
print(url2)

urlunsplit()

def urlunsplit(components):"""Combine the elements of a tuple as returned by urlsplit() into acomplete URL as a string. The data argument can be any five-item iterable.This may result in a slightly different, but equivalent URL, if the URL thatwas parsed originally had unnecessary delimiters (for example, a ? with anempty query; the RFC states that these are equivalent)."""scheme, netloc, url, query, fragment, _coerce_result = (_coerce_args(*components))if netloc or (scheme and scheme in uses_netloc and url[:2] != '//'):if url and url[:1] != '/': url = '/' + url

示例代码:

from urllib.parse import urlparse, urlsplit, urlunspliturl = urlparse('http://www.baidu.com/index.php?username=dgw')
print(url)url2 = urlsplit('http://www.baidu.com/index.php?username=dgw')
print(url2)url3 = urlunsplit(url2)
print(url3)

urljoin()

urljoin()将一个基本URL和一个可能的相对URL连接起来,形成对后者的绝对地址。

注意:如果基本URL并非以字符/结尾的话,那么URL基地址最右边部分就会被这个相对路径所替换。

def urljoin(base, url, allow_fragments=True):"""Join a base URL and a possibly relative URL to form an absoluteinterpretation of the latter."""if not base:return urlif not url:return basebase, url, _coerce_result = _coerce_args(base, url)......

示例代码:

from urllib.parse import urljoinurl = urljoin('http://www.baidu.com/test/', 'index.php?username=dgw')
print(url)url2 = urljoin('http://www.baidu.com/test', 'index.php?username=dgw')
print(url2)

python中url解析库(urlparse、 urlunparse、 urlsplit、 urlunsplit、 urlsplit、 urlunsplit、 urljoin)相关推荐

  1. python3 urlparse_Python3的URL解析库urlparse

    下面是python教程栏目为大家介绍Python3的URL解析库urlparse,希望可以帮助到大家. 解析一个 URL 获得各个概念所对应的值在 Python 中显得很简单, Python3 中将 ...

  2. Python3 URL解析库 — urlparse

    解析一个 URL 获得各个概念所对应的值在 Python 中显得很简单, Python3 中将 urllib2.urlparse 和 robotparse 并入了 urllib 模块中, 所以原本在 ...

  3. python url解析_Python的url解析库--urlparse

    一.urlparse解析url的query并构建字典 下面的方法主要的功能: 解析url的各个部分,并能够获取url的query部分,并把query部分构建成dict. 具体的代码实现: >&g ...

  4. 小白对python中网页解析库pyquery的理解

    终于又开始写一些基本的东西,借博客来记录一下自己的学习过程 在不断深入研究python爬虫后,学到了越来越多的东西,对于爬虫解析网页的多种方法也有了一定的理解,之前讲过beautifulsoup的一些 ...

  5. python中nlp的库_用于nlp的python中的网站数据清理

    python中nlp的库 The most important step of any data-driven project is obtaining quality data. Without t ...

  6. 十几款应用广泛的第三方URL解析库被曝8个漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 网络安全公司 Claroty 和 Synk 联合分析了16款不同的第三方 URL 解析库,结果发现八个不一致和混淆问题,可用于绕过验证并易受大量 ...

  7. chatgpt赋能python:Python中的4J-Selenium库:从基础到进阶

    Python中的4J-Selenium库:从基础到进阶 随着互联网时代的到来,搜索引擎已经成为了每个人日常生活中不可或缺的一部分.SEO(Search Engine Optimization)也就应运 ...

  8. 常用的python命令行解析库

    常用的python命令行解析库,这儿介绍3种: 1.argparse 2.click 3.fire argparse是python自带的模块,要经历解析器初始化.参数定义.解析一套流程,使用起来有些繁 ...

  9. python中使用requests库获取昵图网图片,且正则中re.S的用法

    python中使用requests库获取图片,且正则表达式中re.S的用法以及r.text和r.content的区别和搜索关键词 这里我获取的是昵图网的图片 代码附上 这里我获取的是2020的图片 i ...

最新文章

  1. 交叉熵损失(Cross Entropy Loss)计算过程
  2. 二叉查找树(一)之 C语言的实现
  3. django 用户管理相关的表
  4. vue中生产模式和调试模式_为什么在生产中进行调试是如此诱人?
  5. matlab 的cat函数
  6. chrome扩展之3:一步步跟我学开发一个表单填写扩展
  7. 部分IE8使用的兼容CSS3属性的方法
  8. github下载的代码、怎么使用 python_Python学习20-补充内容之GitHub安装使用
  9. 证书信任管理器(用于https请求) X509TrustManager
  10. 在北大国家发展研究院发言
  11. ssm项目,测试方法一直转圈,运行不停止
  12. 怎样用AIDL Service 传递复杂数据
  13. 电脑蓝屏个人解决办法————由程序引起的
  14. IO_file结构、FSOP、house of orange总结
  15. keil—MDK字体配色方案
  16. Android Jetpack架构组件(一)带你了解Android Jetpack
  17. 数据库自动化运维平台--数据库巡检
  18. sqli-labs靶场第五关
  19. bootstrap自动生成html,利用Bootstrap快速搭建个人响应式主页(附演示+源码)-ATtuing...
  20. 关于证书那点事---把一个p7b格式证书转换成cer格式证书。

热门文章

  1. 再谈Delphi vs VC++(非常精彩) (转)
  2. 古典风格游戏音乐的特征及表现
  3. 多商户商城小程序如何操作运营?电商系统源码发展趋势
  4. 联想微型计算机设置从u盘启动,联想笔记本如何设置从U盘启动
  5. Android 优化 透明Activity展示loading关闭时闪烁
  6. 数据安全学习概念理解——明文与密文的区别
  7. Qt Widgets 和 Qt Quick / QML
  8. python 异步线程 实现 异步生产 同步通信
  9. [ 2205口语 ] 万能段子
  10. centos7同步上海时间