python 中文url 編碼如何轉換回中文?

最近用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",

我折騰了好久,也不知道怎麼把後面這串東西decode 成「歷史上那些牛人們.pdf」。 求大神指點。 另外我用的python3.


In [1]: from urllib.parse import unquote

In [2]: unquote("%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF", encoding="GBK")

Out[2]: "歷史上那些牛人們.PDF"


import urllib.parse
# Python3 url編碼
print(urllib.parse.quote("天安門"))
# Python3 url解碼
print(urllib.parse.unquote("%E5%A4%A9%E5%AE%89%E9%97%A8"))


對於python2.7.x該如何處理這個問題?

#!/usr/bin/python2.7.13

# -*- coding:utf-8 -*-

import urllib

s = "歷史上那些牛人們.pdf"

print urllib.quote(s.decode("utf-8").encode("gbk"))

print urllib.quote(s)

print urllib.unquote(urllib.quote(s.decode("utf-8").encode("gbk"))).decode("gbk")

print urllib.unquote(urllib.quote(s)).decode("utf-8")


指定一下url的編碼和網站一致,


推薦閱讀:

爬蟲工程師的未來方向在哪?
如何抓取etymonline的詞根與解釋?
網路技術不斷進步,我們還有隱私么?
豆瓣robots.txt為什麼只專門提到豌豆莢的useragent?
只精通爬數據這個技能,以後能有大的發展嗎?

TAG:Python | Unicode統一碼 | 爬蟲計算機網路 | Python開發 |