python

 

 

Beautiful Soup 4 で警告が出た問題

 

Beautiful Soup 4 を使い、Webから取得したファイルをスクレイピングした時に警告が出た問題についてです。何度やっても同じ警告が出ました(エラーではないのですが気持ち悪いです)




Pythonからの警告内容は
GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). 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.

GuessedAtParserWarningです。パーサーが明示的に指定されていないので、このシステムで利用可能な最良の HTML パーサー ("lxml") を使っています。これは通常問題にはなりませんが、このコードを別のシステムや別の仮想環境で実行すると、別のパーサーが使用され、異なる動作をする可能性があります。



To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.

この警告を消すには、BeautifulSoupのコンストラクタに追加引数
「features="lxml"」を渡します。


ざっと訳すと(Deepl翻訳 笑)、こんな感じで、BeautifulSoupのコンストラクタに引数 "html.parser"(この場合は「lxml」、他のものでも良い)を追加することを推奨しているようなので、素直にBeautifulSoupのコンストラクタに引数を渡してみました。

 スッキリ解決方法

#features = "lxml"を追加
#例)
soup = BeautifulSoup(r.text, features = "lxml")

自分の環境では、これで Warning の吐きだしが止まりました