2016-03-16 4 views
10

私はBeautiful Soup 4を使用して、インターネットから盗んだHTML形式のテキストを解析しています。時にはこのテキストは単に一部のウェブサイトへのリンクです。 BS4は非常にクロス程度であるという事実:beautifulsoupでURLの警告を表示しない

UserWarning: "http://example.com" looks like a URL. Beautiful Soup is not 
an HTTP client. You should probably use an HTTP client to get the document 
behind the URL, and feed that document to Beautiful Soup. 

私はこの事実を非常に意識してると、私は講義を取得していない、テキスト入力を解釈したいです。私はスクリプトのアクティビティを監視するためにコンソールを使用していますが、非常に怒っているライブラリによってうんざりしています。

この警告を抑制または無効にする方法はありますか?

+0

キャッチ 'UserWarning'。 –

+0

@LutzHornこれは例外ではなく、コンソールに直接印刷してプログラムの実行を停止するものではありません。 – Jmaa

+0

@jDo:そのような点を除いてtry ...を使用することはうまくいかないという先入観。 – Jmaa

答えて

0

更新

この答えは時代遅れであり、@legel状態として、情報の損失になります。することができますexceptionswarningsモジュールを使用してのようにあなたがwarningsをキャッチすることができ、適切なソリューション


のために彼の答えを参照してください。

import warnings 
import bs4 

warnings.filterwarnings('error') 
try: 
    soup = bs4.BeautifulSoup('http://stackoverflow.com/') 
except UserWarning: 
    print('I caught the warning') 

>>> I caught the warning 

12

それは(それがキャッチされている場合でも)が発生することが例外を強制するためWondercricketにより溶液は、情報を失います。単に警告を抑止して処理を続行するには、次のようにします。

import warnings 
warnings.filterwarnings("ignore", category=UserWarning, module='bs4') 
関連する問題