Как я могу сделать HTML безопасным для веб-браузера с python?
-
05-07-2019 - |
Вопрос
Как сделать HTML из электронной почты безопасным для отображения в веб-браузере с python?
Любые внешние ссылки не должны отображаться при отображении. Другими словами, весь отображаемый контент должен поступать из электронной почты, а не из Интернета.
Кроме спам-писем, они должны отображаться как можно точнее, чем задумано автором.
Я бы хотел не кодировать это сам.
Решения, требующие последней версии браузера (Firefox), также приемлемы.
Другие советы
Мне не совсем понятно, что именно вы имеете в виду под " safe " ;. Это довольно большая тема ... но, для чего она стоит:
По моему мнению, демонтаж парсера из ActiveState Cookbook - один из самых простых решения. Вы можете в значительной степени скопировать / вставить класс и начать использовать его.
Посмотрите также комментарии. Последний заявляет, что он больше не работает, но у меня также есть где-то в приложении, и он работает нормально. С работы у меня нет доступа к этому ящику, поэтому мне придется поискать его в выходные дни.
Используйте модуль HTMLparser или установите BeautifulSoup и используйте их для анализа HTML, а также для отключения или удаления тегов. Это оставит любой текст ссылки, но он не будет выделен и не будет кликабельным, так как вы отображаете его с помощью компонента веб-браузера.
Вы можете прояснить, что было сделано, заменив <A></A>
на <SPAN></SPAN>
и изменив текстовое оформление, чтобы показать, где раньше была ссылка. Возможно, другой оттенок синего, чем обычно, и пунктирное подчеркивание, указывающее на разбитость. Таким образом, вы немного ближе к отображению, как задумано, фактически не вводя людей в заблуждение, нажимая на что-то, что нельзя нажимать. Вы даже можете добавить указатель мыши в Javascript или pure CSS , в котором появляется всплывающая подсказка, объясняющая, что ссылки были отключены по соображениям безопасности.
Аналогичные действия можно выполнить с тегами <IMG></IMG>
, в том числе заменив их пустым прямоугольником, чтобы макет страницы был близок к оригиналу. Р>
Я делал такие вещи с помощью Beautiful Soup , но HTMLparser включен в Python. В старых дистрибутивах Python был htmllib, который сейчас не поддерживается. Поскольку HTML-код в сообщении электронной почты может быть не совсем корректным, используйте Beautiful Soup 3.0.7a, который лучше подходит для понимания испорченного HTML-кода.