解码 URL 中的转义字符
- 2025-02-21 08:48:00
- admin 原创
- 19
问题描述:
我有一个包含带有转义字符的 URL 的列表。这些字符已urllib2.urlopen
在恢复 html 页面时设置:
http://www.sample1webpage.com/index.php?title=%E9%A6%96%E9%A1%B5&action=edit
http://www.sample1webpage.com/index.php?title=%E9%A6%96%E9%A1%B5&action=history
http://www.sample1webpage.com/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh
有没有办法在 python 中将它们转换回未转义的形式?
PS: URL 采用 utf-8 编码
解决方案 1:
使用urllib
包(import urllib
):
Python 2.7
来自官方文件 :
urllib.unquote(string)
%xx
用等效的单字符替换转义符。例如:
unquote('/%7Econnolly/')
收益'/~connolly/'
。
Python 3
来自官方文件 :
urllib.parse.unquote(string, encoding='utf-8', errors='replace')
[…]
例如:
unquote('/El%20Ni%C3%B1o/')
收益'/El Niño/'
。
解决方案 2:
如果你正在使用,Python3
你可以使用:
import urllib.parse
urllib.parse.unquote(url)
解决方案 3:
或者urllib.unquote_plus
>>> import urllib
>>> urllib.unquote('erythrocyte+membrane+protein+1%2C+PfEMP1+%28VAR%29')
'erythrocyte+membrane+protein+1,+PfEMP1+(VAR)'
>>> urllib.unquote_plus('erythrocyte+membrane+protein+1%2C+PfEMP1+%28VAR%29')
'erythrocyte membrane protein 1, PfEMP1 (VAR)'
解决方案 4:
您可以使用urllib.unquote
解决方案 5:
import re
def unquote(url):
return re.compile('%([0-9a-fA-F]{2})',re.M).sub(lambda m: chr(int(m.group(1),16)), url)
相关推荐
热门文章
项目管理软件有哪些?
- 2025年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
热门标签
云禅道AD