pythonでBeautifulSoupを使おうとしたときに「UserWarning: No parser was explicitly specified」の警告が出ることがあります。
実行したコード
import requests
from bs4 import BeautifulSoup
url = 'http://animetranscripts.wikispaces.com/Sword+Art+Online%3E1.+The+World+of+Swords'
response = requests.get(url)
soup = BeautifulSoup(response.content)
警告メッセージの内容
> python scrape.py
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.
訳:
パーサーが明示的に指定されていないため、このシステムとしても最も適しているHTMLパーサーであるhtml.parserを使用します。
これは通常の場合は問題となりませんが、もしこのコードを他のシステムで実行する場合や異なった仮想環境で実行する場合、
異なるパーサーが使われることにより振る舞いが変わる場合があります。
メッセージにある通り、コードを修正せずにそのまま実行しても問題ありませんが、ワーニングの出力をなくすためには、下記のようにBeautifulSoup()の第二引数へ'html.parser'を追加すれば良いです。
修正後のコード
import requests
from bs4 import BeautifulSoup
url = 'http://animetranscripts.wikispaces.com/Sword+Art+Online%3E1.+The+World+of+Swords'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
こちらもおススメ
It works, thank you!