Подавить предупреждение 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, и она захламлена очень рассерженной библиотекой.
Любой способ подавить или отключить это предупреждение?
Ответы
Ответ 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')