问题描述:
我喜欢看电子书,可是给txt下载的不多,请教大家有没有这样的转换工具?
解析:
这种软件比较多:
如
HTML2TXT [HTML到TXT转换器]是一个可以帮助您将HTML文件转换为TXT格式的免费软件工具.它不仅删除HTML标签,而且重新格式化文本,使文本更具可读性.支持鼠标拖放文件进行转换.它能在短短壹分钟内转换成百上千个文件,而且支持多个文件同时转换.如果您配合CHMUnpacker [CHM解包器]使用,效果更佳。
java可以使用jsoup、htmlparser等工具进行html的读取和解析,以下是详细说明:1、jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的 *** 作方法来取出和 *** 作数据。据说它是基于MIT协议发布的。
jsoup的主要功能如下:
从一个URL,文件或字符串中解析HTML;
使用DOM或CSS选择器来查找、取出数据;
可 *** 作HTML元素、属性、文本;
示例代码:
Document doc = Jsoup.parse(input, "UTF-8", "http://www.dangdang.com")
Element content = doc.getElementById("content")
Elements links = content.getElementsByTag("a")
for (Element link : links) {
String linkHref = link.attr("href")
String linkText = link.text()
}
2、htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。 据说htmlparser就是目前最好的html解析和分析的工具。无论你是想抓取网页数据还是改造html的内容,用了htmlparser绝对会忍不住称赞。
在线文档: http://www.osctools.net/apidocs/apidoc?api=HTMLParser;http://htmlparser.sourceforge.net/project-info.html
示例代码:
Parser parser = new Parser ("http://www.dangdang.com")
NodeList list = parser.parse (null)
Node node = list.elementAt (0)
NodeList sublist = node.getChildren ()
System.out.println (sublist.size ())
解析HTML最好的类还是微软自己的在站内搜索的项目要进行HTML的解析,发现程序运行非常慢,一开始以为是lucene的问题,一测试大吃一惊,每一步lucene中AddDocument等只用了几十毫秒,而HTML解析竟然用了9秒。日志如下:2010-06-26 15:51:25,171 [8] DEBUG SearchSite.StartIndex - DownloadString:00:00:00.04823292010-06-26 15:51:34,187 [8] DEBUG SearchSite.StartIndex - ThreadParser:00:00:09.02364902010-06-26 15:51:34,187 [8] DEBUG SearchSite.StartIndex - DeleteDocuments:00:00:00.00000692010-06-26 15:51:34,203 [8] DEBUG SearchSite.StartIndex - AddDocument:00:00:00.0191071我使用的是Winista.HtmlParser这块网上找到的HTML解析器。遂准备更换解析器,但是用“.Net HTML Parser”在google上寻找,一直没找到合适的解析器,不是太难用,就是性能比Winista.HtmlParser还差,我才想到,微软的MSHTML不就是用来解析HTML的吗?折腾这么一圈却忘了微软自家的东西,微软的东西性能肯定差不了。添加对Microsoft.mshtml这个程序集的引用,然后编写如下代码:IHTMLDocument2 doc = new HTMLDocumentClass() doc.write(new object[]{pageSource}) doc.close() Title = doc.title Body = doc.body.innerText再测试,哇咔咔,快的要命,只有几十毫秒,2000个帖子一会儿就爬完了。日志如下:2010-06-26 16:26:35,546 [8] DEBUG SearchSite.StartIndex - DownloadString:00:00:00.04002632010-06-26 16:26:35,562 [8] DEBUG SearchSite.StartIndex - ThreadParser:00:00:00.02577312010-06-26 16:26:35,562 [8] DEBUG SearchSite.StartIndex - DeleteDocuments:00:00:00.00019132010-06-26 16:26:35,578 [8] DEBUG SearchSite.StartIndex - AddDocument:00:00:00.0010881HTMLDocumentClass的方法比任何一个网上找到的HTML解析器都丰富,想怎么搞就怎么搞,而且调用方法就是 *** 作Dom的方法,完全不用再去学,哇咔咔,爽呆了。在使用的过程中遇到两个问题:1、VS2010中引用Microsoft.mshtml之后,要修改这个引用的“嵌入互 *** 作类型”为False。2、调用doc.write方法的时候必须通过IHTMLDocument2接口来调用,否则报错“错误的类型”,在google上搜“type mismatch HTMLDocument write”欢迎分享,转载请注明来源:内存溢出
评论列表(0条)