Поскольку BeautifulSoup иногда не может идентифицировать кодировку, попробуйте следующий код, чтобы найти кодировку, используя chardet -
import urllib.request
rawdata = urllib.request.urlopen('http://yahoo.co.jp/').read()
import chardet
chardet.detect(rawdata)
После нахождения кодировки, передайте это как BeautifulSoup в вашем коде -
soup = BeautifulSoup(html_content, "html.parser", from_encoding= "found_encoding")
Подробнее о кодировке BeautifulSoup здесь