Подтвердить что ты не робот

Подавить предупреждение URL в beautifulsoup

Я использую Beautiful Soup 4 для анализа некоторого HTML-форматированного текста, очищенного от Интернета. Иногда этот текст является просто ссылкой на какой-то веб-сайт. Тот факт, что BS4 очень крест:

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.

Я очень хорошо знаю этот факт, я просто хочу интерпретировать ввод текста, а не читать лекцию. Я использую консоль для мониторинга действий script, и она захламлена очень рассерженной библиотекой.

Любой способ подавить или отключить это предупреждение?

4b9b3361

Ответ 1

Обновление

Этот ответ устарел, а как состояния @legel приведет к потере информации. Пожалуйста, обратитесь к его ответу за подходящее решение


Вы можете поймать warnings, как вы можете exceptions, с помощью модуля 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

Ответ 2

Решение Wondercricket теряет информацию, поскольку оно заставляет исключение подниматься (даже если оно поймано). Чтобы просто подавить предупреждение и продолжить обработку, это работает:

import warnings
warnings.filterwarnings("ignore", category=UserWarning, module='bs4')