python中url解析库(urlparse、 urlunparse、 urlsplit、 urlunsplit、 urlsplit、 urlunsplit、 urljoin)
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)相关推荐
- python3 urlparse_Python3的URL解析库urlparse
下面是python教程栏目为大家介绍Python3的URL解析库urlparse,希望可以帮助到大家. 解析一个 URL 获得各个概念所对应的值在 Python 中显得很简单, Python3 中将 ...
- Python3 URL解析库 — urlparse
解析一个 URL 获得各个概念所对应的值在 Python 中显得很简单, Python3 中将 urllib2.urlparse 和 robotparse 并入了 urllib 模块中, 所以原本在 ...
- python url解析_Python的url解析库--urlparse
一.urlparse解析url的query并构建字典 下面的方法主要的功能: 解析url的各个部分,并能够获取url的query部分,并把query部分构建成dict. 具体的代码实现: >&g ...
- 小白对python中网页解析库pyquery的理解
终于又开始写一些基本的东西,借博客来记录一下自己的学习过程 在不断深入研究python爬虫后,学到了越来越多的东西,对于爬虫解析网页的多种方法也有了一定的理解,之前讲过beautifulsoup的一些 ...
- python中nlp的库_用于nlp的python中的网站数据清理
python中nlp的库 The most important step of any data-driven project is obtaining quality data. Without t ...
- 十几款应用广泛的第三方URL解析库被曝8个漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 网络安全公司 Claroty 和 Synk 联合分析了16款不同的第三方 URL 解析库,结果发现八个不一致和混淆问题,可用于绕过验证并易受大量 ...
- chatgpt赋能python:Python中的4J-Selenium库:从基础到进阶
Python中的4J-Selenium库:从基础到进阶 随着互联网时代的到来,搜索引擎已经成为了每个人日常生活中不可或缺的一部分.SEO(Search Engine Optimization)也就应运 ...
- 常用的python命令行解析库
常用的python命令行解析库,这儿介绍3种: 1.argparse 2.click 3.fire argparse是python自带的模块,要经历解析器初始化.参数定义.解析一套流程,使用起来有些繁 ...
- python中使用requests库获取昵图网图片,且正则中re.S的用法
python中使用requests库获取图片,且正则表达式中re.S的用法以及r.text和r.content的区别和搜索关键词 这里我获取的是昵图网的图片 代码附上 这里我获取的是2020的图片 i ...
最新文章
- 交叉熵损失(Cross Entropy Loss)计算过程
- 二叉查找树(一)之 C语言的实现
- django 用户管理相关的表
- vue中生产模式和调试模式_为什么在生产中进行调试是如此诱人?
- matlab 的cat函数
- chrome扩展之3:一步步跟我学开发一个表单填写扩展
- 部分IE8使用的兼容CSS3属性的方法
- github下载的代码、怎么使用 python_Python学习20-补充内容之GitHub安装使用
- 证书信任管理器(用于https请求) X509TrustManager
- 在北大国家发展研究院发言
- ssm项目,测试方法一直转圈,运行不停止
- 怎样用AIDL Service 传递复杂数据
- 电脑蓝屏个人解决办法————由程序引起的
- IO_file结构、FSOP、house of orange总结
- keil—MDK字体配色方案
- Android Jetpack架构组件(一)带你了解Android Jetpack
- 数据库自动化运维平台--数据库巡检
- sqli-labs靶场第五关
- bootstrap自动生成html,利用Bootstrap快速搭建个人响应式主页(附演示+源码)-ATtuing...
- 关于证书那点事---把一个p7b格式证书转换成cer格式证书。