1. 程式人生 > >py3輸出程式碼的侷限以及各編碼器比較

py3輸出程式碼的侷限以及各編碼器比較

爬個圖站,第一步看html_doc。結果輸出不了

#coding=utf-8
import io
import sys
import requests
from bs4 import BeautifulSoup
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') 
url = 'http://www.xmeim.com/photos/XiuRen-192001.html'

header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}

#用get方法開啟url併發送headers
html = requests.get(url,headers = header)


print(html.text)

Sublime編譯器下顯示error

UnicodeEncodeError: 'gbk' codec can't encode character '\xe7' in position 660: illegal multibyte sequence

原理如部落格所講,就加了如下程式碼:

import io
import sys
import urllib.request
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改變標準輸出的預設編碼
res=urllib.request.urlopen('http://www.baidu.com')
htmlBytes=res.read()
print(htmlBytes.decode('utf-8'))

第一段程式碼去掉sys行的#就正常了。 Sublime輕巧但tm總是各種 code error,甚至我網上copy來的程式碼,他也code error。我去弄了個pycharm,能帶著亂碼的print出來了。至少讓我知道不是我原理錯了啊。感覺檢驗基本功shell最好,sublime弄個小程式碼可以,網頁什麼的pycharm更方便點,省心。

 秀人网小九月æ¸
甜可人身材玲珑 [40P]        </div>
        <div class="inline_full" style="display:none;">
            秀人网小九月æ¸
甜可人身材玲珑 [40P]        </div>
                <!-- 桌面浏览器å
¨å±ä»£ç   由于手机测试不成功顾不显示 -->