1. 程式人生 > >URL中中文轉碼和解碼

URL中中文轉碼和解碼

在爬取資料是時候很多搜尋的詞語中在瀏覽器上顯示的是中文,但是我們複製url到本地,中文就會出現我們看不懂的文字。
如果我們需要爬蟲的時候也是一樣,我們需要給瀏覽器傳過去的也是對url中的中文進行轉碼之後的url地址,否則在url中的關鍵字直接出現中文會有問題。在python3的環境中的urllib庫中 quote模組 提供了這一功能

一、URL轉碼

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from urllib.parse import quote

name = '詩人李白'
url_encode_name = quote(name)
print(url_encode_name)

輸出:
%E8%AF%97%E4%BA%BA%E6%9D%8E%E7%99%BD

二、URL解碼

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from urllib.parse import unquote

name = '%E8%AF%97%E4%BA%BA%E6%9D%8E%E7%99%BD'
url_decode_name = unquote(name)
print(url_decode_name)

輸出:
詩人李白

三、使用urlencode對url轉碼

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from urllib.parse import urlencode

start_url='http://tieba.baidu.com/f?'
urldata = {
    'kw':'詩人李白',
    'ie':'utf-8',
    'pn':'100',
}

print(start_url+urlencode(urldata))

輸出:
http://tieba.baidu.com/f?kw=%E8%AF%97%E4%BA%BA%E6%9D%8E%E7%99%BD&ie=utf-8&pn=100