スクレイピングの際、酷い文字化けが発生したので下記の対応を行った。
response = urllib.request.urlopen(url)
html = response.read().decode(response.headers.get_content_charset(), errors='ignore')
parsed_html = BeautifulSoup(html, 'html.parser')
404 Not Found - Qiita - Qiita
しかしながら
LookupError: unknown encoding: windows-31j
というエラーで出力出来なかった。(”errors=’ignore'”も機能していない?)
結局、文字コードを直接指定した。
html = response.read().decode('cp932', errors='ignore')
“windows-31j”はIANAに登録された名称で、文字コードとしては”cp932(=Shift-JIS)”を指定するようです。