この記事の例では、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(' ', ' ') print new_cont #new_cont = " asdfg>123<" new_cont = new_cont.replace('>', '>') print new_cont #new_cont = " asdfg>123<" new_cont = new_cont.replace('<', '<') print new_cont #new_cont = " asdfg>123<"
もっと良い方法があるかどうかはわかりません。
さらに、stackoverflow は、xml でエスケープされた文字を処理するための答えを提供します: python - lxml を使用して XML ドキュメント内の -like エンティティを処理する最良の方法は何ですか? - Stack Overflow。
Python による HTML エスケープ文字の処理に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。