2017-01-05 10 views
2

私はPython 2.7.13、pipとbeautifulsoupをWin10にインストールしました。私はhtmlエンティティを持つ大きなファイルをUnicode文字に変換したいと思っています。私はそれについてどうすればいいのか分かりません(私はPythonについてよく知らない)。ファイルの内容は、次のようになります。HTMLエンティティファイルをUnicodeに変換する(BeautifulSoupとPythonで)

<b>&#947;&#941;&#961;&#969;&#957;</b>, <i>&#959;&#957;&#964;&#959;&#962;, &#8001;</i>, Wurzel <i>&#915;&#917;&#929;</i>, verwandt mit <i>&#947;&#941;&#961;&#945;&#962;, &#947;&#949;&#961;&#945;&#961;&#972;&#962;, &#947;&#949;&#961;&#945;&#953;&#972;&#962;</i> 

私は(編集>エンコード/デコードの選択を使用して - > UnicodeにHTML/XML文字参照)EmEditorで小さな部品を行うことができますが、それは遅すぎると大に対処することはできませんファイル変換)。

私はこのために(オフラインの)任意のソリューションに満足しています。

答えて

2

これはエンコードされたHTMLで、これを試してみてください。

from HTMLParser import HTMLParser 

f = open("myfile.txt") 
h = HTMLParser() 
new_file_content = h.unescape(f.read()) 
new_file = open("newfile.txt", 'w') 
new_file.write(new_file_content) 
+0

おかげで、私は、ファイルにそれを適用する方法についての具体的な指示を必要としています。 – greektranslator

+0

ok、返信更新 – eLRuLL

0

BeautifulSoupがこれを行うための機能で構築された.decode()を呼びかけています。ファイルを読み込むときにこれを行末に追加するだけです!

例:

<html><body><b>γέρων</b>, <i>οντος, ὁ</i>, Wurzel <i>ΓΕΡ</i>, verwandt mit <i>γέρας, γεραρός, γεραιός</i></body></html> 

Document:アウト

site_read = site_download.read().decode('utf-8') 
+0

返信いただきありがとうございます、私はファイルにその方法を適用するための具体的な指示が必要です。 – greektranslator

0
import bs4 

html = '''<b>&#947;&#941;&#961;&#969;&#957;</b>, <i>&#959;&#957;&#964;&#959;&#962;, &#8001;</i>, Wurzel <i>&#915;&#917;&#929;</i>, verwandt mit <i>&#947;&#941;&#961;&#945;&#962;, &#947;&#949;&#961;&#945;&#961;&#972;&#962;, &#947;&#949;&#961;&#945;&#953;&#972;&#962;</i>''' 

soup = bs4.BeautifulSoup(html, 'lxml') 

BeautifulSoupコンストラクタに渡し、文書を解析します。あなた は、文字列または開いたファイルハンドルを渡すことができます。

from bs4 import BeautifulSoup 
> 
> soup = BeautifulSoup(open("index.html")) # you can open you file in here 
> 
> soup = BeautifulSoup("<html>data</html>") 

をまず、文書が がUnicodeに変換され、HTMLエンティティがUnicode 文字に変換されます。

0

ご協力いただきありがとうございます。私はEmEditorの最新バージョンで非常に簡単に行うことができましたST:

テキストを選択>編集>エンコード/デコード選択 - > Unicodeの

にHTML/XML文字参照返信用
関連する問題