`
luliangok
  • 浏览: 781943 次
文章分类
社区版块
存档分类
最新评论

批量html转text

 
阅读更多
批量html转text

(转载请注明来源于金庆的专栏)

原来的代码是参考“Recipe 12.11. Using MSHTML to Parse XML or HTML”,利用htmlfile提取文本。
将当前目录下的所有html文件转换为text文件。

defextractHtmlFile(htmlFilePath):
'''Extracthtmltextandsavetotextfile.
'''
htmlData
=file(htmlFilePath,'r').read()
importwin32com.client
html
=win32com.client.Dispatch('htmlfile')
html.writeln(htmlData)
text
=html.body.innerText.encode('gbk','ignore')
...

但是发现MSHTML解析文件可能会出错,造成文本提取失败。

jigloo经过对10W+个html文件的测试,得出结论,htmlfile的容错比InternetExplorer.Application要差很多。
原文见:http://groups.google.com/group/python-cn/msg/c9221764bcafbc21
他的代码大致如下,IE使用稍烦:

#!/usr/bin/envpython

importsys,os,re,codecs
importtime
importwin32com.client

classhtmlfile:
def__init__(self):
self.
__ie=win32com.client.Dispatch('InternetExplorer.Application')
self.
__ie.Silent=True
self.
__filename=''
self.
__document=None

def__del__(self):
self.
__ie.Quit()

def__getdocument(self,filename):
filename
=os.path.abspath(filename)
ifself.__filename!=filename:
self.
__filename=filename
self.
__ie.Navigate2(filename)
self.
__ie.Document.close()
whileself.__ie.Document.BodyisNone:
time.sleep(
0.1)
self.
__document=self.__ie.Document
returnself.__document
defgettext(self,filename):
returnself.__getdocument(filename).Body.innerText
defgettitle(self,filename):
returnself.__getdocument(filename).title

defformattextpath(dir,htmlfile,htmltitle):
'''Formatthetextfilepathandreturn.
'''
fname
=htmltitle[:6]
fname
=re.sub(r'(/|/|:|*|?|<|>|||")','-',fname)
fname
=fname+'_'+os.path.splitext(htmlfile)[0]+'.txt'
returnos.path.join(root,fname)

if__name__=='__main__':
hf
=htmlfile()
forroot,dirs,namesinos.walk(u'.'):
fornameinnames:
ifname.endswith('htm')orname.endswith('html'):
htmlpath
=os.path.join(root,name)
textpath
=formattextpath(root,name,hf.gettitle(htmlpath))
printhtmlpath,'->',textpath
file(textpath,
'wb').write(hf.gettext(htmlpath).encode('mbcs'))
#Endofif.
#Endofforname.
#Endofforroot.
delhf
#Endofif.

对于我的简单任务,这就足够了。

有一个问题,如果有资源管理器打开着,运行这段代码会关闭资源管理器,并出错退出。比较奇怪,但应该不难解决,可能是IE控件的使用上还有问题。

self.__ie.Document.close()
File "C:/Python25/Lib/site-packages/win32com/client/dynamic.py", line 496, in
__getattr__
raise AttributeError, "%s.%s" % (self._username_, attr)
AttributeError: Document.close


分享到:
评论

相关推荐

    大批量Word转html 转text

    大批量Word转html 转text 另附批量text转txt的bat @Echo off REN *.text *.txt DIR PAUSE

    使用TWebBrowser将Html文件批量转换成纯文本文件的delphi源代码

    使用TWebBrowser将Html文件批量转换成纯文本文件的delphi源代码

    Html_To_Text.rar_html to text_小说

    将指定目录下及其子目录下的html或htm文本,批量转换成文本文件,并按照原先的目录结构,保存在通目录的TEXT文件夹下。对于网上下载的网页小说的批量转换,很有用。转换后放到自己的PDA里,方便阅读。

    Python代码实现单个文件夹下多个html文件转md文件

    Python代码实现单个文件夹下多个html文件转md文件 废话不多说,直接上代码 import os # 如果没有此模块,在终端 pip install html2text mport html2text as ht text_maker = ht.HTML2Text() # 文件夹路径 path="C:/...

    pdf转word pdf转图片

    支持格式: 批量转换: Word (doc,docm,docx) ...批量转换: HTM, HTML, Website to DOC, PDF (as default format, as image format, as text format), TXT, RTF, XLS, JPG, BMP, GIF, TIF, TGA, RLE, PNG, EMF, WMF.

    三调工具箱220507(db,国土txt-shp互转(批量),数据驱动增强,三调工具等)

    针对三调工作常用的工具,也增加了一些通用工具,全部本人原创,可以...目前改动主要针对国土txt转shp,之前是一个编号字段,现在是把所有字段都加进去了。用法是把text文件夹解压放在d盘根目录,工具箱在文件夹里。

    (源码)批量文件处理更名解压缩分割合并等

    2.该资源的源码实例涵盖word转html,word转RTF,word转text,伪装文件夹,创建PDF文档、批量更名及加压缩、操作INI、操作Xml、文件分割合并、汉字转拼音、获取磁盘目录及目录下的某种类型文档等等

    批量转换目录下二进制格式的plist为xml文本格式

    自己用Python写了个批处理,调用下面的perl 脚本将某个目录下的所有的plist文件由binary 模式转为text 模式 两种使用方法: 1.使用的时候可以把batConvert.py 和plutil.pl 文件复制到要处理目录下,双击batConvert....

    text_html_convert

    将文本内容的链接,批量转换成超链接,以供下载工具全部捕获。

    自主创作的一款多目录批量文件内容替换工具

    可以批量替换指定的字符串、文字、数字、英文等文本信息的工具,支持多目录同时替换,同时支持大部分文本类型文件,如txt、text、doc、docx、xls、xlsx、doc含图文、doc含表格、docx含图文及表格、md、html、css、js...

    全能文本批量替换查找工具7.5

    基本介绍】 字符串的批量查找、替换、抽取和统计 可以批量处理多个文件;...除了支持TEXT、HTML格式,还支持WORD、EXCEL、POWERPOINT格式; 除了支持文件内容批量替换,还可以对文件名批量改名、编号;

    PDF反向生成器绿色免安装版,可以成WORD、excele、PowerPoint、EPUB、Images、html文档

    一款具备专业转换效果的PDF转换器,支持将PDF转换为Word、Excel、PowerPoint、EPUB、HTML、Text等格式,转换后能保留源PDF的文本、图片、表格、超链接、页面布局与格式等信息。 转换PDF至XLS/XLSX时,能够使设置是否...

    Text For Ever

    用来对文本进行批量预处理1.64 功能强大,方便 批量HTML转txt 批量OCR 批量文本分割,合并

    Sublime Text3_64.rar

    在Replace框中输入要替换成的代码,按Replace按钮批量替换。 6.文件爬虫 按Command + R可以列出文档中所有的CSS选择器。可以选择并立刻跳转查看。这个操作比使用一般的“查找”功能快得多。 7.拼写...

    Ultra Document To Text Converter注册版本

    批量转换包括 PDF, 富文本 (*.RTF), Word 文档 (*.DOC), Powerpoint 文件 (*.PPT), Excel 工作簿 (*.XLS), 网页 (*.HTML, *.HTM) 及 MHT 文件在内的各类文档为纯文本。无需预装 PDF Reader或Office,只要把待转换的...

    ePub Converter v2.7.79破解版(txt/pdf/doc转ePub).rar

    ePub Converter是一款ePub电子书格式转换器,能够将任意HTML/MOBI/PDF/TEXT/WORD格式文档转换为ePub格式。首先选择要转换的类型,点击添加按钮加载你想要转换为ePub的文件,设置好转换后输出目录,点击开始转换即可...

    所有Office文件格式互相转换_中文特别版

     批量转换: HTM, HTML, Website to DOC, PDF (as default format, as image format, as text  format), TXT, RTF, XLS, JPG, BMP, GIF, TIF, TGA, RLE, PNG, EMF, WMF.  注:此软件官方内置了对简体中文、繁体...

    All_Office_Converter_Platinum_6

     批量转换: HTM, HTML, Website to DOC, PDF (as default format, as image format, as text  format), TXT, RTF, XLS, JPG, BMP, GIF, TIF, TGA, RLE, PNG, EMF, WMF.  注:此软件官方内置了对简体中文、繁体...

    万能pdf互换器

    批量转换: HTM, HTML, Website to DOC, PDF (as default format, as image format, as text format), TXT, RTF, XLS, JPG, BMP, GIF, TIF, TGA, RLE, PNG, EMF, WMF. 注:此软件官方内置了对简体中文、繁体中文的...

Global site tag (gtag.js) - Google Analytics