天天看點

python3中url中文轉ascii碼的介紹

以百度為例,一般都會在url後面有?wd=**** 的這種,但是往往我們複制下來以後就會顯示%253D%25E4%25B8%這種格式,這是什麼原因呢,原因就在于計算機其實是不識别我們輸入的中文,需要把中文轉碼成ascii來讓計算機識别,下面就帶大家來了解一下如何手動讓中文轉ascii。

import urllib.request
import urllib.parse
import string

def get_params():
    url = 'http://www.baidu.com/s?'

    # 把中文字元轉成ascii碼,使用urllib.parse.urlencode, 參數使用字典格式,自動轉化
    params = {
        'wd' : '中文',
        'key': 'zhang',
        'value': 'san'
    }
    result = urllib.parse.urlencode(params)
    final_url = url + result
    # print(final_url)

    # 加上下面這個方法就可以請求
    end_url = urllib.parse.quote(final_url, safe=string.printable)
    response = urllib.request.urlopen(end_url)
    data = response.read().decode('utf-8')

    print(data)

    with open('baidu.html', 'w', encoding='utf-8') as fp:
        fp.write(data)


if __name__ == '__main__':
    get_params()
           

下面你的檔案就會生成一個baidu.html的檔案,儲存在本地,去打開你的html檔案看看是不是你輸入的文字吧。