- 浏览: 228442 次
- 性别:
- 来自: 北京
最新评论
-
lzj0470:
这种方式,带来的问题很大。如:返回一个对象,然后再调用一些办法 ...
自定义classloader加密java程序 -
bushkarl:
JavaScript 胸罩尺寸计算器 -
bushkarl:
...
Ubuntu php 环境配置 -
dearsunkey:
hao !
Ubuntu php 环境配置 -
qskm:
这个怎么用呢?楼主没说清楚啊,
1、 加密的话该怎么加密?直接 ...
自定义classloader加密java程序
spider中需要提取纯文本:
1.javax.swing.text
这种方法比较麻烦,自己写很多的callback,效率很低,效果不见得好
2.htmlparser
方便,但是不规则的htm效果太差,总是遗留大量的tag
package testlucene; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.filters.NodeClassFilter; import org.htmlparser.filters.OrFilter; import org.htmlparser.nodes.TextNode; import org.htmlparser.tags.LinkTag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; import org.htmlparser.visitors.HtmlPage; /** * 演示了Html Parse的应用. * * @author scud http://www.jscud.com */ public class HtmlParser { public static void main(String[] args) throws Exception { String aFile = "d:/1.html"; String content = readTextFile(aFile, "GBK"); // System.out.println(test1(content)); // test2(content); // System.out.println("===================================="); System.out.println(getText(content)); // System.out.println("===================================="); // test4(content); // System.out.println("===================================="); // test5(aFile); // SSystem.out.println("===================================="); } /** * 读取文件的方式来分析内容. filePath也可以是一个Url. * * @param resource * 文件/Url */ public static void test5(String resource) throws Exception { Parser myParser = new Parser(resource); // 设置编码 myParser.setEncoding("GBK"); HtmlPage visitor = new HtmlPage(myParser); myParser.visitAllNodesWith(visitor); String textInPage = visitor.getTitle(); System.out.println(textInPage); } /** * 得到普通文本和链接的内容. * * 使用了过滤条件. */ public static String getText(String content) throws ParserException { Parser myParser; NodeList nodeList = null; StringBuilder result = new StringBuilder(); myParser = Parser.createParser(content, "GBK"); NodeFilter textFilter = new NodeClassFilter(TextNode.class); NodeFilter linkFilter = new NodeClassFilter(LinkTag.class); // 暂时不处理 meta // NodeFilter metaFilter = new NodeClassFilter(MetaTag.class); OrFilter lastFilter = new OrFilter(); lastFilter.setPredicates(new NodeFilter[] { textFilter, linkFilter }); nodeList = myParser.parse(lastFilter); Node[] nodes = nodeList.toNodeArray(); String line = ""; for (int i = 0; i < nodes.length; i++) { Node anode = (Node) nodes[i]; if (anode instanceof TextNode) { TextNode textnode = (TextNode) anode; // line = textnode.toPlainTextString().trim(); line = textnode.getText(); } else if (anode instanceof LinkTag) { LinkTag linknode = (LinkTag) anode; line = linknode.getLink(); // @todo 过滤jsp标签:可以自己实现这个函数 // line = StringFunc.replace(line, "<%.*%>", ""); } if (isTrimEmpty(line)) continue; // System.out.println(line); result.append(line); } return result.toString(); } /** * 读取一个文件到字符串里. * * @param sFileName * 文件名 * @param sEncode * String * @return 文件内容 */ public static String readTextFile(String sFileName, String sEncode) { StringBuffer sbStr = new StringBuffer(); try { File ff = new File(sFileName); InputStreamReader read = new InputStreamReader(new FileInputStream( ff), sEncode); BufferedReader ins = new BufferedReader(read); String dataLine = ""; while (null != (dataLine = ins.readLine())) { sbStr.append(dataLine); sbStr.append("\r\n"); } ins.close(); } catch (Exception e) { e.printStackTrace(); } return sbStr.toString(); } /** * 去掉左右空格后字符串是否为空 * * @param astr * String * @return boolean */ public static boolean isTrimEmpty(String astr) { if ((null == astr) || (astr.length() == 0)) { return true; } if (isBlank(astr.trim())) { return true; } return false; } /** * 字符串是否为空:null或者长度为0. * * @param astr * 源字符串. * @return boolean */ public static boolean isBlank(String astr) { if ((null == astr) || (astr.length() == 0)) { return true; } else { return false; } } }
3.regex
很简单,很实用,会丢失信息,对js不太支持,不过可以与处理一下
text = Scontent.replaceAll("<[^>]*>","");
4.自己处理,可以用些设计模式,留待有空时做。
发表评论
-
JavaScript 胸罩尺寸计算器
2008-11-30 10:45 2510只在周末放松一下 ;) Ed Spencer 已经用Java ... -
JDB 的简单使用
2008-11-24 10:08 1343当新手开始学习Java 时 ... -
自定义classloader加密java程序
2008-11-21 16:32 14228大概想法是这样的: 1. 生成密钥用于在des算法中加密。 2 ... -
dr.scheme中不能输入字符问题的解决
2008-11-02 20:23 1752LANG=C drscheme -
mit-scheme出现HEAP_IN_LOW_MEMORY错误的解决办法
2008-11-01 22:29 1433sudo sysctl -w vm.mmap_min_addr ... -
linux下的GTKLookAndFeel.initSystemColorDefaults异常
2008-10-26 16:25 1320不能使用SystemLookAndFeel,不知跟发行版有没有 ... -
我的emacs配置文件~
2008-10-26 00:29 3487贴在这,免得以后丢了还得写~ (setq default ... -
Linux操作系统中如何使用ISO文件
2008-08-17 22:02 21231.什么是ISO文件? ISO文件:就是以iso为扩展名的文 ... -
深入了解laptop_mode
2008-08-16 11:28 5716对UBUNTU6.06LTS中切入Laptop_mode模式的 ... -
VIM 快捷键(转)
2008-08-10 14:56 2345VIM快捷键: ctags 文件名 ... -
hardy的vim语法高亮
2008-08-10 14:54 1632hardy自带的vim不是完全版的,所以在设置syntax o ... -
ubuntu handy编译google gadgets
2008-08-10 11:40 1285simple step by step instruction ... -
在linux下转换psp的mp4
2008-08-09 23:00 1433开始使用mencoder,比较麻烦,参数总调整不好,http: ... -
Alpine Messaging System, the alternative to Pine.
2008-08-02 16:12 1104I just tried Alpine the email p ... -
lftp中文问题
2008-07-19 09:33 1467<!-- @page { si ... -
The greatest equations ever
2008-07-17 15:48 1204Maxwell's equations of electrom ... -
只许你大步的向前走
2008-05-07 01:14 1299借用许飞的一句歌词,这几天把《恰许同学年少》这张听了n遍,真该 ... -
java socket-message-作业慢慢写~今天就到这
2008-05-04 21:10 1631package org.tiantian.message.se ... -
Html解析生成纯文本-使用SAX以及htmlcleaner
2008-04-22 01:00 2078package testlucene; import jav ... -
JSP使用多线程
2008-04-20 23:23 1666spider之中需要使用多线程去抓取网页,本来还有点疑惑,没想 ...
相关推荐
【中文网页文本抽取源程序】是一个专为处理中文网页数据而设计的软件开发资源,它包含了一组源代码,能够帮助开发者从HTML网页中提取出有用的文本信息。这个项目是用Visual C++ 6.0(简称VC6.0)开发的,这意味着它...
(2) 数据预处理,清洗HTML标签,提取纯文本;(3) 特征工程,提取文本特征,如词频、TF-IDF值等;(4) 训练模型,使用机器学习算法建立分类或回归模型;(5) 系统构建,将模型集成到Java系统中,实现实时的文本抽取功能...
这个模块的出现解决了开发者在处理非纯文本格式文件时的痛点,它能够高效地从HTML、PDF、Microsoft Office文档(如DOC、DOCX、XLS、XLSX、PPTX)以及常见的图像格式(如PNG、JPG、GIF)和RTF文档中抽取文本内容。...
标题中的“Python-一个简单的库和命令行实用程序用以从HTML页面或者明文中抽取摘要”揭示了这个项目是关于Python编程的一个库和命令行工具,它的主要功能是从HTML文档或纯文本中提取摘要信息。这涉及到自然语言处理...
### 从HTML文件中抽取正文的简单方案 #### 背景介绍 随着互联网的快速发展,HTML文件成为了信息传递的主要载体之一。然而,在这些文件中,真正的内容往往被各种无关的元素如广告、布局表格、格式标记等所包围。为了...
取消标记从Markdown中提取纯旧文本#Installation bower install unmark #用法简单如下: < html >< head > < script type =" text/javascript " src =" bower_components/unmark/unmark.js " > &...
文本提取是指从HTML文档中提取出纯文本内容,这通常涉及到忽略HTML标签,只保留标签内的文字。这个过程可以通过递归遍历DOM树,或者使用正则表达式来实现。链接提取则是找出所有`<a>`标签的`href`属性值,这能帮助...
5. **自定义输出格式**:PDFMiner支持将解析后的信息导出为多种格式,如纯文本、XML、HTML等,这使得数据可以进一步被其他工具或系统处理。 6. **API接口**:PDFMiner提供了一套Python API,使得开发者可以轻松地...
"万金油正文抽取器体验版"是一款专为新闻和博客设计的网页正文提取工具,其核心功能是基于最大文本块算法,旨在高效地从网页HTML代码中抽取出主要内容,提供用户更为清晰、干净的文章阅读体验。这款软件的开发者针对...
Tika的核心功能是内容提取,这意味着它可以从不同类型的文件中抽取纯文本,这对于搜索引擎索引、数据分析、内容分析和文本挖掘等工作非常有用。以下是一些关于Tika的重要知识点: 1. **MIME类型识别**:Tika通过...
4. **文本格式转换**:不同格式的文本文件有不同的用途,例如纯文本(.txt)、富文本(.rtf)、网页(.html)等。了解如何在这些格式之间进行转换,有助于适应不同的应用场景。 5. **文本处理与分析**:这包括查找...
**HTMLParser** 是一个用于解析HTML文档的工具,它可以帮助我们从HTML结构中提取出纯文本内容。通过遍历HTML标签并识别内容相关的元素(如`<p>`、`<h1>`至`<h6>`等),我们可以获取到网页的主要文本。同时,...
例如,通过select()方法可以选取特定的HTML元素,getAttr()方法能获取元素的属性值,textContent()则可以获取元素内的纯文本内容。 三、使用示例 以下是一些使用StringParser的典型示例: 1. 分割字符串: ```...
2. **使用xpdf工具提取文本**: 使用xpdf工具包中的pdftotext命令行工具,可以将Pdf文件转换为纯文本格式。这一步骤是将二进制的Pdf文档转换成可供Lucene分析和索引的文本格式的关键。 3. **将提取的文本整合到...
在描述中提到,“从swf文件中提取纯文本的”,意味着这个工具能够帮助用户将嵌入在SWF文件内的文字内容提取出来,这对于内容编辑、数据分析或者进行文本挖掘等任务非常有用。 在标签中,“Flash”是指Adobe Flash...
2. **文本清洗**:对抽取的文本进行清洗,去除HTML标签、链接、特殊字符等,保留纯净的文本内容。 3. **智能分段**:通过分析文章的段落结构,自动将连续的正文内容合并成合适的段落。 4. **语义分析**:利用自然...
预处理步骤通常包括去除HTML标记、转换为纯文本格式、词干提取(Stemming)、停用词过滤(Stop Words Removal)等操作。这些步骤有助于减少噪音数据并提升文本挖掘的效果。 3. **文本挖掘**:这是整个系统的核心...