python3中的urllib.parse的常用方法
将URL按一定的格式进行拆分
- 使用 urllib.parse.urlparse将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段
参照官方地址:https://docs.python.org/3/library/urllib.parse.html
import urllib.parse
#urlparse将url分为6个部分
url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"
url1 = "cheme://netloc/path;parameters?query#fragment"
url_change = urllib.parse.urlparse(url)
print(url_change)
输出结果为:
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
其中 scheme 是协议 netloc 是域名服务器 path 相对路径 params是参数,query是查询的条件
- 使用 urllib.parse.urlsplit 将url分为5个部分,返回一个包含字符串项目的元组:协议、位置、路径、查询、片段
import urllib.parse
#urlsplit将url分为5个部分
url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"
url_change = urllib.parse.urlsplit(url)
print(url_change)
输出结果为:
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx',query='opt=1', fragment='')
其中 scheme 是协议 netloc 是域名服务器 path 相对路径 ,query是查询的条件
对URL按照一定的规格进行拼接
- 使用 urllib.parse.urljoin将相对的一个地址组合成一个url,对于输入没有限制,开头必须是http://或者https://,否则将不组合前面的部分。
import urllib.parse
host = "https://127.0.0.1"
#host ="127.0.0.1"
port = ""
new_url = urllib.parse.urljoin(host,port)
print(new_url)
输出结果为:
https://127.0.0.1/8888
如果 host ="127.0.0.1",则输出的只是: 8888
parse_qs 有几种实现
- urllib.parse.parse_qs 返回字典
- urllib.parse.parse_qsl 返回列表
import urllib.parse
#urlparse将url分为6个部分
url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"
url_change = urllib.parse.urlparse(url) # 将url拆分为6个部分
query = url_change.query #取出拆分后6个部分中的查询模块query
lst_query = urllib.parse.parse_qsl(query) #使用parse_qsl返回列表
dict1 =dict(lst_query) #将返回的列表转换为字典
dict_query =urllib.parse.parse_qs(query) #使用parse_qs返回字典
print("使用parse_qsl返回列表 :",lst_query)
print("将返回的列表转换为字典 :",dict1)
print("使用parse_qs返回字典 : ",dict_query) # data = "test=test&test2=test2&test2=test3"
# print(urllib.parse.parse_qsl(data)) #返回列表
# print(urllib.parse.parse_qs(data)) #返回字典
python3中的urllib.parse的常用方法的更多相关文章
- Python2中的urllib、urllib2和 Python3中的urllib、requests
目录 Python2.x中 urllib和urllib2 常用方法和类 Python3.x中 urllib requests Python2.x中 urllib和urllib2 urllib 和 ur ...
- 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
在python2中,urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: 1.urllib2可以接受一个Request类的实例来设置URL请求的hea ...
- Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)_python
我们可以利用urllib来抓取远程的数据进行保存哦,以下是python3 抓取网页资源的多种方法,有需要的可以参考借鉴. 1.最简单 import urllib.request response = ...
- 在python3中使用urllib.request编写简单的网络爬虫
转自:http://www.cnblogs.com/ArsenalfanInECNU/p/4780883.html Python官方提供了用于编写网络爬虫的包 urllib.request, 我们主要 ...
- Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
出自 http://www.jb51.net/article/93125.htm
- python3中urllib的基本使用
urllib 在python3中,urllib和urllib2进行了合并,现在只有一个urllib模块,urllib和urllib2的中的内容整合进了urllib.request,urlparse整合 ...
- urllib.parse.quote
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- Python 的 urllib.parse 库解析 URL
Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数. 解析url urlparse() 函数可以将 URL 解析成 ParseResult 对象.对象中包含了六 ...
- Python爬虫之urllib.parse详解
Python爬虫之urllib.parse 转载地址 Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数. 解析url 解析url( urlparse() ) ur ...
随机推荐
- python之路-----网络编程
一:客户端/服务端j架构(C/S架构) 在生活中,最常见的C/S架构即是APP和网页服务器这个架构.Client和Server之间利用网络来进行通信,客户端和服务器端的程序不同,用户的程序主要在客户端 ...
- 四:(之七_如何与运行中容器交互)Dockerfile语法梳理和实践
1.指定网络连接方式:--net=”” (bridge/host/none/container: 四种类型) 注:192.168.33.18 此IP是在vagrantfile中指定的虚拟机IP:c ...
- RSA加密及加签
1.对方要求我们的私钥是pkcs8格式,但是实际的公钥没有用pkcs8转换之后的私钥完成,所以是可以不是pkcs8的格式的.我们加签跟格式没有关系. 2.数据格式很重要,to_mpint而非crypt ...
- c++ 生成dll文件并调用
2 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
- wpf-x-指令元素
1. x:Code 用于代码前置 可以吧 C#代码内嵌到前端里 2. x:XData 用于内嵌xml 文件
- 11--Python入门--面向对象
面向对象是Python的特点.面向对象主要通过类class的定义来实现.类class是用来描述具有相同属性和方法的对象的集合.类定义了该集合中的每个对象的共有属性和方法可以将类理解为一个模块,模块中包 ...
- 查看Linux磁盘空间
df -hl 查看磁盘剩余空间 df -h 查看每个根路径的分区大小 du -sh [目录名] 返回该目录的大小 du -sm [文件夹] 返回该文件夹总M数 du -h [目录名] 查看指定文件夹下 ...
- mysql与mysqli的区别
博客搬家了,欢迎大家关注,https://bobjin.com mysqli连接是永久连接,而MySQL是非永久连接. mysql连接:每当第二次使用的时候,都会重新打开一个新的进程. mysqli连 ...
- Cache架构设计
Cache策略 定时过期策略 定时过期的好处是Cache节点的个数符合实际需求,不会造成资源滥用和服务器压力 定时过期适合访问量较大,实时性要求不高的情况 如果访问量小,定时过期会造成Cache命中率 ...
- redis 远程连接出错的解决办法
1. 配置防火墙端口 redis系统的默认端口是6379端口. # 打开端口 $ firewall-cmd --zone=public --add-port=6379/tcp --permanent ...