Python3網頁抓取Non-BMP character not supported in Tk怎麼解決?
我用
content = request.urlopen(req).read().decode("UTF-8")在抓取完網頁print的時候,出現了如下錯誤UnicodeEncodeError: "UCS-2" codec can"t encode characters in position 14-14: Non-BMP character not supported in Tk
我稍微查了一下,似乎是python自身編碼不能映射奇怪的符號,但是在網上找了很久也沒找到解決的方法。有人可以知道怎麼解決么
根據前面幾位的鏈接驗證後得出解決如下錯誤的方法:
錯誤:UnicodeEncodeError: "UCS-2" codec can"t encode characters in position 14-14: Non-BMP character not supported in Tk
原因:有的字元特殊是python自身編碼不能映射奇怪的符號,比如微信中有的用戶名是一個小圖片什麼的。如:下圖紅色圓圈部分。
解決辦法:採用方法:
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
print(x.translate(non_bmp_map))
其中x是獲取的字元。
Traceback (most recent call last):
File "D:python圖片下爬蟲jpg.py", line 25, in &getImg(html)
File "D:python圖片下爬蟲jpg.py", line 15, in getImg print(html) File "D:pythonlibidlelibPyShell.py", line 1318, in writereturn self.shell.write(s, self.tags)
UnicodeEncodeError: "UCS-2" codec can"t encode characters in position 47639-47639: Non-BMP character not supported in Tk這是我寫一個圖片下載爬蟲時出的問題,後面百度了好久終於解決了,說一下我的解決方法,僅供參考,初學Python。參考了python - "UCS-2" codec can"t encode characters in position 1050-1050
import sys
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
page = request.urlopen(url)
html = page.read().decode().translate(non_bmp_map)
你可以參考一下python - "UCS-2" codec can"t encode characters in position 1050-1050
我也遇到了相同問題,怎麼解決的?
樓主,解決了么?
相同問題啊,這個編碼問題 Python3真的很噁心,折騰了n多天,不如Python2.7好用。
推薦閱讀:
※python3下,re.findall返回值前後的[" 『]怎麼去掉?
※pycharm 如何程序運行後,仍可查看變數值?(非Debug mode, 因為debug運行太慢)
※python對變數賦值為什麼會出現以下的情況?
※在同一台電腦下如何進行 Python 2 與 3 的切換?
※python3是如何處理字元異常的?
TAG:Unicode統一碼 | Python3x | 網頁抓取 |