1. ホーム
  2. python

[解決済み] Python 3.1 で文字列中の HTML エンティティをアンエスケープするにはどうしたらいいですか?[重複しています]。

2022-03-01 14:25:25

質問

Python 2.6以前のバージョンで、Python 3.Xでこれを行う方法については何もありません。

3.1で、できれば外部ライブラリなしでできるようにしなければなりません。現在、私はhttplib2をインストールし、コマンドプロンプトのcurlにアクセスしています(これは、私がページのソースコードを取得する方法です)。残念ながら、curlはhtmlエンティティをデコードしません、私の知る限り、私はドキュメントでそれをデコードするコマンドを見つけることができませんでした。

はい、私はBeautiful Soupを動作させるために、3.Xで成功しない何度も試してみました。

つまり、はっきり言って、こんな文字列を回す必要があるのです。 Suzy & John は、次のような文字列になります。

どのように解決するのですか?

この関数を使用すると html.unescape :

Python3.4+の場合 (更新してくれた J.F. Sebastian に感謝します)。

import html
html.unescape('Suzy & John')
# 'Suzy & John'

html.unescape('"')
# '"'

Python3.3 またはそれ以前のバージョン。

import html.parser    
html.parser.HTMLParser().unescape('Suzy & John')

Python2 :

import HTMLParser
HTMLParser.HTMLParser().unescape('Suzy & John')