pythoでhtmlのエスケープをする方法
htmlをブログ本文に埋め込んで表示しようと思ったら、その部分が表示されないんですね。 例えばhtmlの基本的な形をブログ内で表示させてみましょう
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>タイトル</title> </head> <body> </body> </html>
こういうやつです。 よくありますね。HTML5でwebサイトを作るときのベースとなる部分です。
でもこのhtmlの要素はそのままブログに書くことができません。
だって今書いている文書もhtmlで書いているのですから、そのまま書いてしまうと、このブログのHTML要素だと解釈されてしまいます。
そこでpre
内で記入するときにも特殊文字(<、 >)をエスケープしてあげないといけません。
ただいくつも要素があるとエスケープするのも面倒なのでサクッとエスケープできるようにPythonで書いてみました。
Pythonでhtmlエスケープするにはモジュールxml.sax.saxutils.escape
を利用するようです。xml.sax.saxutils — SAX ユーティリティ
文字列データ内の '&', '<', '>' をエスケープします。
やりたいことそのままですね。
#!/usr/bin/env python # -*- coding: utf-8 -*- from xml.sax.saxutils import escape url = #ここにエスケープしたいHTML要素を書く escape_url = escape(url) print(escape_url)
これでエスケープされたhtmlが表示されます。