批量html转换txt,python实现

软件和网站开发以及相关技术探讨
回复
头像
zkwlx
帖子: 988
注册时间: 2009-10-09 12:54
系统: debian
来自: 北京某胡同

批量html转换txt,python实现

#1

帖子 zkwlx » 2010-10-15 16:55

最近要在手机上看一个CHM的文档,用7z解压出来那么多个,头都大了
就写了个脚本,功能是把一个文件夹下的所有html文件简单处理了一下,然后转换成txt的,并把这些txt输出到指定的文件夹下

使用方法:

代码: 全选

sudo chmod +x html2txt.py
./html2txt.py /inputdir /outputdir
源代码:

代码: 全选

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import HTMLParser
import urllib
import os.path, os
import sys


class parseText(HTMLParser.HTMLParser):
    def handle_data(self, data):
        if data != '\n' and data.isspace():
            pass
        else:
            self.text.append(data)

def main(htmlpath, outpath):
    lParser = parseText()
    namelist = os.listdir(htmlpath)
    if os.path.exists(outpath):
        print '输出目录已存在,请重新输入!'
        sys.exit()
    else:
        os.mkdir(outpath)

    for name in namelist:
        lParser.text = []
        lParser.feed(urllib.urlopen(os.path.join(htmlpath, name)).read())
        lParser.close()
        f = open(os.path.join(outpath, os.path.splitext(name)[0] + '.txt'), 'w')
        f.writelines(lParser.text)
        f.close()

if __name__ == '__main__':
    main(sys.argv[1], sys.argv[2])
附件
html2txt.py
(879 Bytes) 已下载 178 次
头像
退避九舍
帖子: 742
注册时间: 2010-08-08 20:02
系统: Ubuntu 22.04

Re: 批量html转换txt,python实现

#2

帖子 退避九舍 » 2010-10-15 17:17

沙发 :em06
退避九舍:富贵不能淫,贫贱不能移,威武不能屈:坚持ubuntu不动摇!
头像
thomasxie
帖子: 317
注册时间: 2009-11-22 15:29
联系:

Re: 批量html转换txt,python实现

#3

帖子 thomasxie » 2010-10-15 19:54

:em11
时间就像一张网,你撒在那里,你的收获就在那里。
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 批量html转换txt,python实现

#4

帖子 trigger » 2010-10-16 10:10

$ ./html2txt.py ~/文档/default ~/文档/txt
Traceback (most recent call last):
File "./html2txt.py", line 35, in <module>
main(sys.argv[1], sys.argv[2])
File "./html2txt.py", line 29, in main
lParser.close()
File "/usr/lib/python2.6/HTMLParser.py", line 112, in close
self.goahead(1)
File "/usr/lib/python2.6/HTMLParser.py", line 164, in goahead
self.error("EOF in middle of construct")
File "/usr/lib/python2.6/HTMLParser.py", line 115, in error
raise HTMLParseError(message, self.getpos())
HTMLParser.HTMLParseError: EOF in middle of construct, at line 411, column 11
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 批量html转换txt,python实现

#5

帖子 trigger » 2010-10-16 10:23

sed -e :a -e 's/<[^>]*>//g;/</N;//ba' file.html
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
zkwlx
帖子: 988
注册时间: 2009-10-09 12:54
系统: debian
来自: 北京某胡同

Re: 批量html转换txt,python实现

#6

帖子 zkwlx » 2010-10-16 11:26

trigger 写了:sed -e :a -e 's/<[^>]*>//g;/</N;//ba' file.html
学习了! :em11 不过上面那个问题是怎么回事?
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 批量html转换txt,python实现

#7

帖子 trigger » 2010-10-16 11:44

zkwlx 写了:
trigger 写了:sed -e :a -e 's/<[^>]*>//g;/</N;//ba' file.html
学习了! :em11 不过上面那个问题是怎么回事?
不知道,不会python。有两个文件处理成功。估计第三个里面有什么特殊字符。。。
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: 批量html转换txt,python实现

#8

帖子 cjxgm » 2010-10-16 20:40

这种东西使用re就可以了,还大动干戈搞个HTMLParser……
要是我,写一个词法分析器、运用编译原理解析HTML……
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 批量html转换txt,python实现

#9

帖子 eexpress » 2010-10-16 21:34

☛ as html2
html2ps html2text html2wml

用模块去折腾。。。 真还不如练习下 perlre
● 鸣学
头像
zkwlx
帖子: 988
注册时间: 2009-10-09 12:54
系统: debian
来自: 北京某胡同

Re: 批量html转换txt,python实现

#10

帖子 zkwlx » 2010-10-16 22:08

cjxgm 写了:这种东西使用re就可以了,还大动干戈搞个HTMLParser……
要是我,写一个词法分析器、运用编译原理解析HTML……
能详细说明下吗,想学习学习 :em11
回复