スペック環境
OS:Windows10 home
Docker:Docker Quickstart terminal
コンテナ:Ubuntu
python:Python3
エラー内容
ローカルフォルダをマウントした下記のPythonファイルを実行すると**「UnicodeDecodeError…」**と表示される
Python
1from bs4 import BeautifulSoup 2 3# HTMLファイルを読み込んでBeautifulSoupオブジェクトを得る。 4with open('index.html') as f: 5 soup = BeautifulSoup(f, 'html.parser') 6 7# find_all()メソッドでa要素のリストを取得して、個々のa要素に対して処理を行う。 8for a in soup.find_all('a'): 9 print(a.get('href'), a.text) # href属性とリンクのテキストを取得して表示する。
・表示されたエラー表示
Traceback
1 File "scrape_by_bs4.py", line 5, in <module> 2 soup = BeautifulSoup(f, 'html.parser') 3 File "/usr/local/lib/python3.5/dist-packages/bs4/__init__.py", line 191, in __init__ 4 markup = markup.read() 5 File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode 6 return codecs.ascii_decode(input, self.errors)[0] 7UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 265: ordinal not in range(128) 8
エラーに対して実行したこと
先頭に下記コードを挿入
import io,sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
実行理由のソースはこちらのページを参考
[python3]デフォルト文字コードの指定(CGI実行時)
上記実行しても同様のエラー表示となり、様々なサイトを探したが、解決策が見つからず、ご教示頂けますと幸いです。
補足
なお、pip3コマンドでダウンロードしたライブラリをpythonコマンドで実行すると発生するエラーととあるサイトに記載がありましたが、解決策は記載されておりませんでした。
Windowsのローカルファイルの実行なので、WindowsのUnicodeと何か関連があるかと思いましたが、解決には至りませんでした。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/22 05:49