我偶尔会收到一个Word文档,我必须将其显示为网页。我目前正在使用Django的flatpages通过抓取MS Word生成的html内容来实现这一点。生成的HTML非常混乱。有没有更好的方法可以使用Python生成非常简单的html来解决这个问题?
答案 0 :(得分:6)
一个好的解决方案是上传到Google文档并从中导出html版本。 (必须有api吗?)
它做了很多“清理”;未来Beautiful Soup可用于进行任何进一步的更改。它是这个星球上最强大,最优雅的html解析库。
这是记者公司的一个已知标准。
答案 1 :(得分:4)
我找到了这个网页:http://www.textfixer.com/html/convert-word-to-html.php
它将格式化文本转换为简单 HTML标记,保留粗体,斜体,链接和段落,但不为字体大小和面添加标记。正是我需要节省一些时间。
答案 2 :(得分:3)
我的超级简单应用WordOff有一个API用于清除Word导出的HTML。您可以覆盖flatpages模型的save方法,以便在第一次保存时通过API管道HTML。像这样:
import urllib
import urllib2
def decruft(html):
data = urllib.urlencode({'html' : html})
req = urllib2.Request('http://wordoff.org/api/clean', data)
response = urllib2.urlopen(req)
return response.read()
def save(self, **kwargs):
if not self.pk: # only de-cruft when content is first added
self.content = decruft(self.content)
super(FlatPage, self).save(**kwargs)
答案 3 :(得分:2)
这取决于您要处理的格式和图像的数量。我做了几件事之一:
答案 4 :(得分:2)
您还可以使用Abiword / wvWare将word文档转换为XHTML,然后使用BeautifulSoup / ElementTree /等解析它。如果需要,可以预处理它。根据我的经验,Abiword在转换Word文件和生成相对干净的XHTML文件方面做得非常好。
我应该提一下,Abiword可以在命令行上运行,因此很容易将它集成到自动化过程中。
答案 5 :(得分:2)
Word 2010具有“另存为过滤网页”的功能。这将消除Word插入的绝大部分HTML。