将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 ...
随机推荐
-
ABAP宏--Macros
定义语法 DEFINE macro. ... &1 ... &9 ... END-OF-DEFINITION. 调用语法: macro [p1 p2 ... ]. 最多时能有9参数 例 ...
-
Mysql 导入数据,推荐Source命令,太快了
http://jingyan.baidu.com/article/cbf0e500d15c762eab289362.html
-
C++: std::string 与 Unicode 如何结合?
关键字:std::string Unicode 转自:http://www.vckbase.com/document/viewdoc/?id=1293 一旦知道 TCHAR 和_T 是如何工作的,那么 ...
-
$.cookie 使用不了的问题定位过程
最近在项目中需要使用到jquery的cookie,按理说在html头中引入jquery-1.7.1.min.js和jquery.cookie.js,然后在js中就可以使用cookie函数了.像这样使用 ...
-
KVM 初探
KVM 是业界最为流行的 Hypervisor,全称是 Kernel-based Virtual Machine.它是作为 Linux kernel 中的一个内核模块而存在,模块名为 kvm.ko,也 ...
-
语音VLAN异常流量分析
现象描述:有线网络里,接入层交换机上,凡是被划入语音vlan的端口,都会呈现出相同的流量表现,而且瞬间流量都很大,30 - 40 MB级别,对有线网络的稳定性有很大的影响. 设备型号: IP 电话:A ...
-
Textview文字监控(输入到某个字符后,进行操作)
以手机号充值为例,当用户输入最后一位数时候,进行汇率的变换. 1.首先给用户添加一个textchangedlistener 2.然后再写一个文字变化的监视器 mobile_et.add ...
-
Tunnel Warfare (区间合并|最大值最小值巧妙方法)
Tunnel Warfare http://acm.hdu.edu.cn/showproblem.php?pid=1540 Time Limit: 4000/2000 MS (Java/Others) ...
-
Java clone方法(下)
1.终于调用的是一个JNI方法,即java本地方法,加高速度 2.使用clone方法,分为浅复制.深复制,这里直接使用网上抄来的案例来说明吧: 说明: 1)为什么我们在派生类中覆盖Object的clo ...
-
Spring Task中的定时任务无法注入service的解决办法
1.问题 因一个项目(使用的是Spring+SpringMVC+hibernate框架)需要在spring task定时任务中调用数据库操作,在使用 @Autowired注入service时后台报错, ...