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開發 |