簡體   English   中英

Python 2.7,請求庫,無法獲取unicode

[英]Python 2.7, Requests library, can't get unicode

請求庫的文檔說,requests.get()方法總是返回unicode。 但是,當我嘗試知道返回的編碼是什么時,我看到了“ windows-1251”。 那是個問題。 當我嘗試獲取request.get(url).text時,出現錯誤,因為當前url的內容帶有西里爾符號。

import requests

url = 'https://www.weblancer.net/jobs/'
r = requests.get(url)
print r.encoding
print r.text

我得到這樣的東西:

windows-1251
UnicodeEncodeError: 'ascii' codec can't encode characters in position 256-263: ordinal not in range(128)

是python 2.7的問題還是根本沒有問題? 幫我

文檔

請求將自動解碼來自服務器的內容。 大多數Unicode字符集都是無縫解碼的。

發出請求時,請求會根據HTTP標頭對響應的編碼進行有根據的猜測。

requests.get().encoding告訴您用於將來自服務器的位流轉換為響應中的Unicode文本的編碼。

在您的情況下,這是正確的:響應中的標題指出字符集是Windows-1251

您遇到的錯誤是在那之后。 您正在使用的python嘗試將Unicode編碼為ascii以進行打印,但失敗了。

您可以說print r.text.encode(r.encoding) ...與Padraic在評論中的建議是相同的結果-即r.content


注意: requests.get().encoding是一個lvar:如果猜錯了,可以將其設置為所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM