pythonunquote
1. 用python怎么解析'%3cp%3e%e5%'
import urllib
rawurl=xxx
url=urllib.unquote(rawurl)
所用模块:urllib
所用函数:urllib.unquote()
案例
import urllib
rawurl = "%E6%B2%B3%E6%BA%90"url = urllib.unquote(rawurl)print url
输出
河源
问题扩展
urllib.unquote()目的是对url编码进行解码,与该函数对应的是编码函数urllib.quote()
123
>>> import urllib>>> urllib.quote("河源")'%E6%B2%B3%E6%BA%90
URL为何要编码、解码?
通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据。对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。
例如,Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码。
又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。
2. Python3 如何对url解码实现Python2中urllib.unquote的作用
url编码:
import urllib
url = 'http://test.com/s?wd=哈哈' #如果此网站编码是gbk的话,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。
url = url.decode('gbk', 'replace')
print urllib.quote(url.encode('utf-8', 'replace'))
3. python爬虫中文编码问题。
这段编码经常出现在url中,把中文编码成gbk,然后把\x替换成%,可以试试下面的,用到urllib2的解码函数。
from urllib2 import unquote
print unquote('%CA%F0%B7%B4')
参考:http://blog.csdn.net/haoni123321/article/details/15814111
4. [Python 2.7]请教一个urllib.unquote函数write乱码的问题(utf-8和gbk相关)
这个问题挺好回答的。涉及三个问题:
windows下,命令行下缺省是只支持GBK,GB18030。 所以print的内容如果是unicode或者是GBK结尾自然可以。东方名珠被unquote后,它是UTF-8编码。所以直接print无效。乱码。
记事本,会自动编码识别,支持GBK,UTF-8。不过优先选择GBK。
quote与unquote只会将byte做一次escap后,变成URL规范的东西。并不会改变原始内容的编码。
还有疑问吗?
5. python怎么将url的中文怎么转码
先引入urllib模块
假如我们要对下面的url进行转码,注意观察各种字符的变化
使用quote方法,进行转码
我们看看转码得到的结果:
我们想要得到原先的url,可以使用quote的逆函数unquote
得到反转码以后的url,我们看到这种方法并没有返回中文字符。
6. python使用unquote解码问题
不需要三种解法,两种就够了,用try except
s='%ce%de%b5'
s=str(s)
try:
s=unquote(s).decode('gb18030').encode('utf-8')
except:
s=unquote(s).decode('utf-8').encode('utf-8')
prints
7. url编码问题在python中怎么解决
最近在抓取一些js代码产生的动态数据,需要模拟js请求获得所需用的数据,遇到对url进行编码和解码的问题,就把遇到的问题总结一下,有总结才有进步,才能使学到的知识更加清晰。对url进行编码和解码,python提供了很方便的接口进行调用。
url中的query带有特殊字符(不是url的保留字)时需要进行编码。当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯英文字符的url。
(1) url编码:
import urllib
url = 'wd=哈哈' #如果此网站编码是gbk的话,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。
url = url.decode('gbk', 'replace')
print urllib.quote(url.encode('utf-8', 'replace'))
结果: 3a%2f%2ftest.com%2fs%3fwd%3d%e5%93%88%e5%93%88
(2) url解码:
import urllib
encoded_url = est.com%2fs%3fwd%3d%e5%93%88%e5%93%88'
print urllib.unquote(encoded_url).decode('utf-8', 'replace').encode('gbk', 'replace') #反过来
函数调用的参数以及结果都是utf-8编码的,所以在对url编码时,需要将参数串的编码从原始编码转换成utf-8,
对url解码时,需要将解码结果从utf-8转换成原始编码格式。
依据网站采用的编码不同,或是gbk或是utf-8,赋赋予不同的编码,进行不同的url转码。GBK格式,一个中文字符转为%xx%xx,共两组;utf-8格式,一个中文字符转为%xx%xx%xx,共三组。
>>>importsys,urllib
>>>s='杭州'
>>>urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
%BA%BC%D6%DD
>>>urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))
'%E6%9D%AD%E5%B7%9E'
a="墨西哥女孩被拐4年接客4万次生的孩子成为人质-搜狐新闻"
printurllib.quote(urllib.quote(a))
[python]view plain
进行两次编码转换后,会变为:%25E5%25A2%25A8%25E8%25A5%25BF%25E5%2593%25A5%25E5%25A5%25B3%25E5%25AD%25A9%25E8%25A2%25AB%25E6%258B%25904%25E5%25B9.................................................................................这样的形式。
同样需要两次解码后才能得到中文。
最近用python写了个小爬虫自动下点东西,但是url 是含中文的,而且中文似乎是 gbk 编码然后转成 url的。举个例子吧,我如果有个unicode字符串“历史上那些牛人们.pdf”,那么我转换成url之后是,
t="%20%E5%8E%86%E5%8F%B2%E4%B8%8A%E9%82%A3%E4%BA%9B%E7%89%9B%E4%BA%BA%E4%BB%AC.pdf",
但是对方网站给的是 s="%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF"
>>>print urllib.unquote("%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF").decode('gbk').encode('utf-8')
>>>历史上那些牛人们.PDF
8. python 爬虫中文编码转换出错
importurllib
if__name__=='__main__':
enc=r"%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF"
string=urllib.unquote(enc).decode('gb2312')
printtype(string),string
这是python2的,简单点。只能帮这么多了。
9. python字符串与url编码的转换实例
python字符串与url编码的转换实例
今天小编就为大家分享一篇python字符串与url编码的转换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要应用的场景
爬虫生成带搜索词语的网址
1.字符串转为url编码
import urllib
poet_name = "李白"
url_code_name = urllib.quote(poet_name)
print url_code_name
#输出
#%E6%9D%8E%E7%99%BD
2.url编码转为字符串
import urllib
url_code_name = "%E6%9D%8E%E7%99%BD"
name = urllib.unquote(url_code_name)
print name
#输出
#李白
以上这篇python字符串与url编码的转换实例就是小编分享给大家的全部内容了篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助