ホームページ >バックエンド開発 >Python チュートリアル >PythonはHTMLエスケープ文字を処理します

PythonはHTMLエスケープ文字を処理します

高洛峰
高洛峰オリジナル
2017-03-01 13:27:572056ブラウズ

この記事の例では、Python が HTML エスケープ文字を処理する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

最近、Python を使用して Web ページのデータを処理するときに、a8093152e673feb7aba1828c43532094 などの HTML エスケープ文字 (HTML 文字エンティティとも呼ばれます) が頻繁に発生します。 。文字エンティティは通常、Web ページで予約文字を表すために使用されます。たとえば、> はブラウザがタグであると認識しないようにします。詳細については、w3school の HTML 文字エンティティを参照してください。便利ではありますが、Web データの解析に大きな影響を与える可能性があります。これらのエスケープ文字を処理するには、次の解決策があります:

1. HTMLParser を使用して

import HTMLParser
html_cont = " asdfg>123<"
html_parser = HTMLParser.HTMLParser()
new_cont = html_parser.unescape(html_cont)
print new_cont #new_cont = " asdfg>123<"

変換を元に戻します (スペースのみを元に戻すことはできません):

import cgi
new_cont = cgi.escape(new_cont)
print new_cont #new_cont = " asdfg>123<"

2. 1つずつ直接置き換えます

html_cont = " asdfg>123<"
new_cont = new_cont.replace(&#39; &#39;, &#39; &#39;)
print new_cont #new_cont = " asdfg>123<"
new_cont = new_cont.replace(&#39;>&#39;, &#39;>&#39;)
print new_cont #new_cont = " asdfg>123<"
new_cont = new_cont.replace(&#39;<&#39;, &#39;<&#39;)
print new_cont #new_cont = " asdfg>123<"

もっと良い方法があるかどうかはわかりません。

さらに、stackoverflow は、xml でエスケープされた文字を処理するための答えを提供します: python - lxml を使用して XML ドキュメント内の -like エンティティを処理する最良の方法は何ですか? - Stack Overflow。

Python による HTML エスケープ文字の処理に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。