BeautifulSoupをインストールした後、cmdでPythonを実行すると、この警告が表示されます。
D:\Application\python\lib\site-packages\beautifulsoup4-4.4.1-py3.4.Egg\bs4\__init__.py:166:
UserWarning: No parser was explicitly specified, so I'm using the best
available HTML parser for this system ("html.parser"). This usually isn't a
problem, but if you run this code on another system, or in a different
virtual environment, it may use a different parser and behave differently.
To get rid of this warning, change this:
BeautifulSoup([your markup])
to this:
BeautifulSoup([your markup], "html.parser")
なぜ出てくるのか、どうやって解決するのかという理想はありません。
問題の解決策は、エラーメッセージに明記されています。以下のようなコードは、XML/HTML /などを指定していません。パーサー。
BeautifulSoup( ... )
エラーを修正するには、使用するパーサーを次のように指定する必要があります。
BeautifulSoup( ..., "html.parser" )
必要に応じて、サードパーティのパーサーをインストールすることもできます。
ドキュメントでは、速度を上げるために lxml をインストールして使用することを推奨しています。
BeautifulSoup(html, "lxml")
2.7.3より前のPython 2のバージョン、または3.2.2より前のPython 3のバージョンを使用している場合、lxmlまたはhtml5lib–Pythonをインストールすることが不可欠です。組み込みのHTMLパーサーは、古いバージョンではあまり良くありません。
LXMLパーサーのインストール
Ubuntu(debian)で
apt-get install python-lxml
Fedora(RHELベース)
dnf install python-lxml
PIPを使用する
pip install lxml
HTMLパーサーの場合、html5libをインストールし、次を実行する必要があります。
pip install html5lib
次に、BeautifulSoupメソッドにhtml5libを追加します。
htmlDoc = bs4.BeautifulSoup(req1.text, 'html5lib')
print(htmlDoc)