`

Extract text of special font style using htmlparser

阅读更多

package extractor;

import java.io.File;
import java.io.IOException;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.nodes.TagNode;
import org.htmlparser.nodes.TextNode;
import org.htmlparser.util.NodeIterator;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

import sap.FileInputReader;

public class HTMLElementExtractor {
	public void extractBoldFont(String content, String tag)
			throws ParserException {
		/*
		 * use regular expression to extract italic text, may not be complete
		 * e.g. in <i><span>blahblah...</span></i>, "blahblah..." will be
		 * ignored ArrayList<String> italics = new ArrayList<String>();
		 * 
		 * Matcher matcher =
		 * Pattern.compile(">[A-Za-z ]+</i>").matcher(content); while
		 * (matcher.find()) { String str=matcher.group(); Matcher m =
		 * Pattern.compile("[A-Za-z ]+").matcher(str); if (m.find()) {
		 * System.out.println(m.group()); } }
		 */

		Parser parser = new Parser(content);
		NodeFilter filter = new TagNameFilter(tag);
		NodeList list = parser.extractAllNodesThatMatch(filter);
		NodeIterator iterator = list.elements();
		while (iterator.hasMoreNodes()) {
			TagNode node = (TagNode) iterator.nextNode();
			if (tag == "a" && node.getFirstChild() != null) {
				// <a href="../../7d/a109d5efcc4644a9f2da2ab27e50dd/content.htm"
				// title="Go to specified document">Search Task Panel for BI
				// Data Services</a>
				System.out.println(node.getFirstChild().toPlainTextString());
			} else if (tag == "i" || tag == "b") {// || tag == "em", from the
													// content, it seems "<em>"
													// is not what we intended
				Node nd = node.getNextSibling();
				if (nd instanceof TextNode) {
					// <i>blah</i>
					System.out.println(nd.toPlainTextString());
				} else if (nd instanceof TagNode) {
					// <i><span class="SAPXDPNavigationPath "
					// title="Navigation path">blah</span></i>
					System.out.println(nd.getFirstChild().toPlainTextString());
				}
			}
		}

	}

	public static void main(String[] args) {
		HTMLElementExtractor extractor = new HTMLElementExtractor();
		String content;
		try {
			content = new FileInputReader(new File("test/input/content.htm"))
					.getStringContent();
			extractor.extractBoldFont(content, "b");
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParserException e) {
			e.printStackTrace();
		}

	}

}
 
0
1
分享到:
评论

相关推荐

    Winista.Text.HtmlParser采集南京价格信息网

    《使用Winista.Text.HtmlParser采集南京价格信息网的实践与技术解析》 在信息技术日新月异的今天,数据采集已成为各行各业不可或缺的一部分。本项目“Winista.Text.HtmlParser采集南京价格信息网”就是一个典型的...

    htmlparser

    org.htmlparser.tags.StyleTag.class org.htmlparser.tags.TableColumn.class org.htmlparser.tags.TableHeader.class org.htmlparser.tags.TableRow.class org.htmlparser.tags.TableTag.class org.htmlparser.tags...

    HtmlParser

    使用HTMLParser,我们可以解析网页内容,提取所需信息,如文章标题、链接、图片等。以下是一些核心概念和步骤: 1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_...

    htmlparser.jar文件

    `org.htmlparser.Node` 是HTMLParser中的一个关键接口,它代表HTML文档中的一个节点,可以是元素(Element)、注释(Comment)、文本(Text)等。这个接口是构建整个解析树的基础,通过遍历Node对象,开发者可以访问...

    用C#实现HtmlParser的代码

    using Winista.Text.HtmlParser.Filters; namespace HTMLParser { public partial class Form1 : Form { public Form1() { InitializeComponent(); AddUrl(); } private void btnParser_Click(object ...

    HTMLParser.net源代码HTMLParser.net使用demo

    本项目名为"HTMLParser.net源代码HTMLParser.net使用demo",显然是一个包含示例代码的压缩包,用于展示如何在实际应用中使用HTMLParser.net。 HTMLParser.net的核心功能包括: 1. **HTML解析**:它能够将HTML字符...

    htmlparser网页分析

    例如,可以使用`TagStart`事件捕获元素开始,`Text`事件获取元素内的文本,`TagEnd`事件表示元素结束。 5. 应用场景:HTMLParser适用于数据抓取、网页自动化测试、内容过滤等多种场景。比如,你可以使用它来提取...

    htmlparser-1.2.1 jar

    htmlparser-1.2.1jar包下载htmlparser-1.2.1jar包下载

    htmlparser库与教程

    在“htmlparser.jar”中,包含了HTMLParser库的所有类和方法,使得开发人员可以将这个库集成到他们的Java项目中。使用jar文件,开发者可以直接导入并使用HTMLParser的API来解析和操作HTML文档。 "htmlparser实现从...

    C# HtmlParser使用小实例

    using Winista.HtmlParser.Model; // 创建解析器 var parser = new HtmlParser(); // 解析HTML字符串 var htmlString = "&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello, World!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;"; var document = parser.Parse...

    HtmlParser 2.1 码源

    **HtmlParser 2.1 知识点详解** HtmlParser是一个强大的开源库,主要用于解析HTML文档,它在处理不规则的HTML结构时表现出了极高的灵活性和稳定性。这个"HtmlParser 2.1 码源"是该库的2015年6月的最新版本,包含了...

    c#版htmlparser htmlparser.dll htmlparser源代码

    `htmlparser.dll`是这个库的动态链接库文件,它包含了编译好的类和方法,可以直接在C#项目中引用以使用HTMLParser的功能。在C#项目中,我们可以通过添加对dll的引用来调用库中的方法,比如解析HTML字符串、查找特定...

    HtmlParser源码及demo

    以下是对`HtmlParser`及其相关知识点的详细说明: 1. **HTML解析**:HTMLParser提供了对HTML文档的解析能力,将HTML文本转换为可操作的对象模型。它能够处理嵌套标签、属性、注释以及实体引用等HTML元素。 2. **...

    htmlparser1.6最新版

    本文将深入探讨HTMLParser 1.6版本的功能、用途、使用方法以及其在IT领域的应用。 HTMLParser的核心功能是解析HTML文档,即使在面对结构不规则或者非标准的HTML代码时,也能有效地进行解析。它提供了灵活的事件驱动...

    Winista.Htmlparser.Net 源码 +Demo

    `HtmlParser2003`可能是一个早期版本的源代码,而`AnalyzeHtml`和`WebParser`则可能是演示如何使用HtmlParser的项目。 1. **AnalyzeHtml**:这个项目可能展示了如何分析HTML文档,通过调用HtmlParser的API来提取...

    htmlParser.jar包

    在很多Web抓取、信息提取以及网页分析的项目中,HTMLParser都是一个理想的工具。 HTMLParser库的设计考虑了易用性和灵活性,它提供了丰富的API,允许开发者通过编程方式来访问和操作HTML文档的各个元素,如标签、...

    htmlparser(c#,java)

    - 在C#中,HTMLParser库可能需要NuGet包管理器安装,集成后可以通过`using`语句引入相关命名空间,然后就可以在项目中直接使用。 - Java项目中,HTMLParser通常作为依赖项添加到构建工具(如Maven或Gradle)的配置...

    JAVA htmlparser 使用实例

    ### JAVA HtmlParser 使用实例详解 在Java开发过程中,解析HTML文档是一项常见的需求,尤其是在处理Web爬虫、数据抓取等应用场景时。`HtmlParser`库为开发者提供了一种简便的方式来解析HTML文档,并从中提取所需的...

Global site tag (gtag.js) - Google Analytics