當前位置:首頁 » 編程語言 » python的quote

python的quote

發布時間: 2025-09-20 11:07:56

『壹』 python中quote函數是什麼意思,怎麼用

quote函數一般用於處理URL鏈接里的特殊字元,比如一些非ASCII列表中的字母。

位置:該函數在Python27中位於urllib模塊下,在Python3中應該是向下移動一級目錄,位於urllib.parse模塊中。

功能:替換字元串string中的一些特殊字元,並使用%xx的方式替換該特殊字元(xx為該字元的(uft-8)十六進制數值)。正常字元ascii字母a-z,數字,還有符號'_.-'是不會被替換的。當然使用函數的第二個參數(默認值為/)可以指定哪些字元也不需要替換。

例子:

>>>urllib.quote('/test')
'/test'
>>>urllib.quote('/test',safe='')
'%2Ftest'#2F為/的uft-8的hex值。

其他:函數的第一個參數為需要轉換的字元串,格式應該為str或者bytes。

函數的第三個字元為編碼方式。

『貳』 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'

  • [python]view plain

  • a="墨西哥女孩被拐4年接客4萬次生的孩子成為人質-搜狐新聞"

  • printurllib.quote(urllib.quote(a))

  • 進行兩次編碼轉換後,會變為:%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

『叄』 Python字元串是什麼,如何使用

字元串的表示

字元串可以被成對的單引號(single quote)或雙引號(double quotes)包圍起來,這兩者的作用是一樣的:

更多關於Python的基礎性知識可以看下這個網頁的視頻教程,Python常見的數據類型及使用方法掌握,希望我的回答能幫到你。

熱點內容
php的視頻教程全集 發布:2025-09-20 13:46:49 瀏覽:215
雲伺服器是真雲嗎 發布:2025-09-20 13:13:04 瀏覽:978
html轉pdfphp 發布:2025-09-20 13:12:51 瀏覽:212
反編譯jne 發布:2025-09-20 13:06:23 瀏覽:418
資料庫學生信息系統 發布:2025-09-20 13:04:52 瀏覽:439
三位小密碼鎖如何設置 發布:2025-09-20 12:59:00 瀏覽:968
好的伺服器電腦 發布:2025-09-20 12:45:20 瀏覽:397
c語言進制格式 發布:2025-09-20 12:45:19 瀏覽:722
加密移動硬碟忘記密碼 發布:2025-09-20 12:31:47 瀏覽:523
資料庫約束是什麼 發布:2025-09-20 12:14:07 瀏覽:747