Python3 urllib.parse 常用函数示例

简介:

1、获取url参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>>  from  urllib  import  parse
>>> url  =  r 'https://docs.python.org/3.5/search.html?q=parse&check_keywords=yes&area=default'
>>> parseResult  =  parse.urlparse(url)
>>> parseResult
ParseResult(scheme = 'https' , netloc = 'docs.python.org' , path = '/3.5/search.html' , params = ' ', query=' q = parse&check_keywords = yes&area = default ', fragment=' ')
>>> param_dict  =  parse.parse_qs(parseResult.query)
>>> param_dict
{ 'q' : [ 'parse' ],  'check_keywords' : [ 'yes' ],  'area' : [ 'default' ]}
>>> q  =  param_dict[ 'q' ][ 0 ]
>>> q
'parse'
#注意:加号会被解码,可能有时并不是我们想要的
>>> parse.parse_qs( 'proxy=183.222.102.178:8080&task=XXXXX|5-3+2' )
{ 'proxy' : [ '183.222.102.178:8080' ],  'task' : [ 'XXXXX|5-3 2' ]}

2、parse_qs/parse_qsl

1
2
3
4
5
6
7
>>>  from  urllib  import  parse
>>> parse.parse_qs( 'action=addblog&job=modify&tid=1766670' )
{ 'tid' : [ '1766670' ],  'action' : [ 'addblog' ],  'job' : [ 'modify' ]}  #注意和第三个并不一样
>>> parse.parse_qsl( 'action=addblog&job=modify&tid=1766670' )
[( 'action' 'addblog' ), ( 'job' 'modify' ), ( 'tid' '1766670' )]
>>>  dict (parse.parse_qsl( 'action=addblog&job=modify&tid=1766670' ))  #注意和第一个并不一样
{ 'tid' '1766670' 'action' 'addblog' 'job' 'modify' }

3、urlencode

1
2
3
4
5
6
7
>>>  from  urllib  import  parse
>>> query  =  {
     'name' 'walker' ,
     'age' 99 ,
     }
>>> parse.urlencode(query)
'name=walker&age=99'

4、quote/quote_plus

1
2
3
4
5
>>>  from  urllib  import  parse
>>> parse.quote( 'a&b/c' )     #未编码斜线
'a%26b/c'
>>> parse.quote_plus( 'a&b/c' )     #编码了斜线
'a%26b%2Fc'

5、unquote/unquote_plus

1
2
3
4
5
from  urllib  import  parse
>>> parse.unquote( '1+2' )     #不解码加号
'1+2'
>>> parse.unquote( '1+2' )     #把加号解码为空格
'1 2'

  如果你还想问为什么没有urldecode——再把示例1看五遍。^_^


相关阅读:

1、urllib.parse — Parse URLs into components

2、Binary-to-text encoding (各种base编码。base58、base64等)

3、Requests:为人类设计的HTTP库


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1766670如需转载请自行联系原作者


RQSLT

相关文章
|
9天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
13 1
|
23天前
|
Python
Python函数使用(四)
Python函数使用(四)
59 0
|
1天前
|
Serverless 开发者 Python
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
25 1
|
2天前
|
索引 Python
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
|
3天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
25 0
|
3天前
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
|
4天前
|
Python
python学习10-函数
python学习10-函数
|
4天前
|
Python
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
|
8天前
|
测试技术 开发者 Python
Python中的装饰器:优雅而强大的函数修饰工具
在Python编程中,装饰器是一种强大的工具,用于修改函数或方法的行为。本文将深入探讨Python中装饰器的概念、用法和实际应用,以及如何利用装饰器实现代码的优雅和高效。
|
12天前
|
Python
Python函数学习应用案例详解
【4月更文挑战第7天】学习Python函数的应用,包括计算两数之和、判断偶数、计算阶乘、生成斐波那契数列及反转字符串。示例代码展示了函数接收参数和返回结果的功能,如`add(a, b)`求和,`is_even(num)`判断偶数,`factorial(n)`计算阶乘,`fibonacci(n)`生成斐波那契数,以及`reverse_string(s)`反转字符串。
13 1