我已经在Win10上安装了Python 2.7.13,pip和beautifulsoup。我想将一个带有html实体的大文件转换为Unicode字符,但我不确定如何去做(我对Python了解不多)。文件内容如下所示:
<b>γέρων</b>, <i>οντος, ὁ</i>, Wurzel <i>ΓΕΡ</i>, verwandt mit <i>γέρας, γεραρός, γεραιός</i>
我可以用 EmEditor 做一些小部分(使用编辑>编码/解码选择 -> HTML/XML 字符引用 Unicode),但它太慢了,无法应对大文件转换)。
我很乐意为此提供任何(离线)解决方案。
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)
BeautifulSoup 有一个内置函数来执行此操作,称为 .decode()
。只需在阅读文件时将其添加到行尾即可!
例:
site_read = site_download.read().decode('utf-8')
import bs4
html = '''<b>γέρων</b>, <i>οντος, ὁ</i>, Wurzel <i>ΓΕΡ</i>, verwandt mit <i>γέρας, γεραρός, γεραιός</i>'''
soup = bs4.BeautifulSoup(html, 'lxml')
外:
<html><body><b>γέρων</b>, <i>οντος, ὁ</i>, Wurzel <i>ΓΕΡ</i>, verwandt mit <i>γέρας, γεραρός, γεραιός</i></body></html>
公文:
若要分析文档,请将其传递到 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 字符:
感谢您的帮助,我确实设法使用最新版本的 EmEditor 轻松完成,事实证明它非常快:
选择文本>编辑>编码/解码选择-> HTML/XML 字符对 Unicode 的引用