python url编码解码_Python urllib模块的URL编码解码功能

前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍。当然 urllib 还有一些其它很有用的辅助方法,比如对 url 进行编码、解码等等。接下来我们再大概介绍一下。

我们知道,url 中是不能出现一些特殊的符号的,有些符号有特殊的用途。比如以 get 方式提交数据的时候,会在 url 中添加 key=value 这样的字符串,所以在 value 中是不允许有 '=',因此要对其进行编码;与此同时服务器接收到这些参数的时候,要进行解码,还原成原始的数据。这个时候,这些辅助方法会很有用:

urllib.quote(string[, safe]):对字符串进行编码。参数 safe 指定了不需要编码的字符;

urllib.unquote(string) :对字符串进行解码;

urllib.quote_plus(string [ , safe ] ) :与 urllib.quote 类似,但这个方法用'+'来替换' ',而 quote 用'%20'来代替' '

urllib.unquote_plus(string ) :对字符串进行解码;

urllib.urlencode(query[, doseq]):将dict或者包含两个元素的元组列表转换成url参数。例如 字典{'name': 'dark-bull', 'age': 200}将被转换为"name=dark-bull&age=200"

urllib.pathname2url(path):将本地路径转换成 url 路径;

urllib.url2pathname(path):将url路径转换成本地路径;

我们接下来运行一下下面的脚本来加深理解。

import urllib

data = 'name = ~nowamagic+5'

data1 = urllib.quote(data)

print data1 # result: name%20%3D%20%7Enowamagic%2B5

print urllib.unquote(data1) # name = ~nowamagic+5

data2 = urllib.quote_plus(data)

print data2 # result: name+%3D+%7Enowamagic%2B5

print urllib.unquote_plus(data2) # name = ~nowamagic+5

data3 = urllib.urlencode({ 'name': 'nowamagic-gonn', 'age': 200 })

print data3 # result: age=200&name=nowamagic-gonn

data4 = urllib.pathname2url(r'd:/a/b/c/23.php')

print data4 # result: ///D://a/b/c/23.php

print urllib.url2pathname(data4) # result: D:/a/b/c/23.php

在 Python Shell 里执行的具体情况为:

Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32

Type "copyright", "credits" or "license()" for more information.

>>> import urllib

>>> data = 'name = ~nowamagic+5'

>>> data1 = urllib.quote(data)

>>> print data1

name%20%3D%20%7Enowamagic%2B5

>>> print urllib.unquote(data1)

name = ~nowamagic+5

>>> data2 = urllib.quote_plus(data)

>>> print data2

name+%3D+%7Enowamagic%2B5

>>> print urllib.unquote_plus(data2)

name = ~nowamagic+5

>>> data3 = urllib.urlencode({ 'name': 'nowamagic-gonn', 'age': 200 })

>>> print data3

age=200&name=nowamagic-gonn

>>> data4 = urllib.pathname2url(r'd:/a/b/c/23.php')

>>> print data4

///D://a/b/c/23.php

>>> print urllib.url2pathname(data4)

D:\a\b\c\23.php

urllib 模块的基本使用也比较简单,后面根据使用情况会继续跟进了解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中进行URL解码,可以使用标准库中的urllib.parse.unquote()方法。示例代码如下: ```python from urllib.parse import unquote url = 'https://www.google.com/search?q=%E4%B8%AD%E6%96%87' print(unquote(url)) ``` 输出结果为: ```text https://www.google.com/search?q=中文 ``` 该方法会将URL中的转义字符转换为实际的字符,以便进行正常的文字显示和处理。 ### 回答2: Python可以使用urllib.parse库的unquote函数来进行URL解码。 首先,我们需要在代码中导入urllib.parse库: ```python import urllib.parse ``` 然后,使用unquote函数对URL进行解码: ```python url = "https%3A%2F%2Fwww.example.com%2Fpath%2F%3Fkey%3Dvalue%26foo%3Dbar" decoded_url = urllib.parse.unquote(url) ``` 在这个例子中,我们将一个经过URL编码的字符串传递给unquote函数进行解码解码后的URL将被存储在decoded_url变量中。 解码后的URL将变为: ```python https://www.example.com/path/?key=value&foo=bar ``` 通过使用urllib.parse库的unquote函数,Python可以很方便地对URL进行解码,使得我们能够正确地处理包含特殊字符的URL。 ### 回答3: Python可以使用urllib库中的unquote()方法来进行URL解码。unquote()方法用于将URL中的特殊字符解码为普通字符。 下面是一个例子,演示如何使用Python进行URL解码: ```python import urllib.parse # 要解码URL url = 'https://www.example.com/%E4%BD%A0%E5%A5%BD' # 使用unquote()方法进行解码 decoded_url = urllib.parse.unquote(url) # 打印解码后的URL print(decoded_url) ``` 运行以上代码,输出将会是: ``` https://www.example.com/你好 ``` 在以上例子中,使用urllib.parse模块中的unquote()方法对含有Unicode编码URL进行了解码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值