1、org.htmlparser
定义了htmlparser的一些基础类。其中最为重要的是Parser类。
Parser是htmlparser的最核心的类,其构造函数提供了如下:Parser.createParser (String html, String charset)、 Parser ()、Parser (Lexer lexer, ParserFeedback fb)、Parser (URLConnection connection, ParserFeedback fb)、Parser (String resource, ParserFeedback feedback)、 Parser (String resource)
各构造函数的具体用法及含义可以查看其代码,很容易理解。
Parser常用的几个方法:
- elements获取元素
Parser parser = new Parser (”http://www.google.com")/;
for (NodeIterator i = parser.elements (); i.hasMoreElements (); )
processMyNodes (i.nextNode ());
- parse (NodeFilter filter):通过NodeFilter方式获取
- visitAllNodesWith (NodeVisitor visitor):通过Nodevisitor方式
- extractAllNodesThatMatch (NodeFilter filter):通过NodeFilter方式
2、org.htmlparser.beans
对Visitor和Filter的方法进行了封装,定义了针对一些常用html元素操作的bean,简化对常用元素的提取操作。
包括:FilterBean、HTMLLinkBean、HTMLTextBean、LinkBean、StringBean、BeanyBaby等。
3、org.htmlparser.nodes
定义了基础的node,包括:AbstractNode、RemarkNode、TagNode、TextNode等。
4、org.htmlparser.tags
定义了htmlparser的各种tag。
5、org.htmlparser.filters
定义了htmlparser所提供的各种filter,主要通过extractAllNodesThatMatch (NodeFilter filter)来对html页面指定类型的元素进行过滤,包括:AndFilter、CssSelectorNodeFilter、 HasAttributeFilter、HasChildFilter、HasParentFilter、HasSiblingFilter、 IsEqualFilter、LinkRegexFilter、LinkStringFilter、NodeClassFilter、 NotFilter、OrFilter、RegexFilter、StringFilter、TagNameFilter、XorFilter
6、org.htmlparser.visitors
定义了htmlparser所提供的各种visitor,主要通过visitAllNodesWith (NodeVisitor visitor)来对html页面元素进行遍历,包括:HtmlPage、LinkFindingVisitor、NodeVisitor、 ObjectFindingVisitor、StringFindingVisitor、TagFindingVisitor、 TextExtractingVisitor、UrlModifyingVisitor
7、org.htmlparser.parserapplications
定义了一些实用的工具,包括LinkExtractor、SiteCapturer、StringExtractor、WikiCapturer,这几个类也可以作为htmlparser使用样例。
8、org.htmlparser.tests
对各种功能的单元测试用例,也可以作为htmlparser使用的样例。
htmlparser对html页面处理的算法
主要是如下几种方式
- 采用Visitor方式访问Html
try { Parser parser = new Parser(); parser.setURL(”http://www.google.com")/; parser.setEncoding(parser.getEncoding()); NodeVisitor visitor = new NodeVisitor() { public void visitTag(Tag tag) { logger.fatal(”testVisitorAll() Tag name is :” + tag.getTagName() + ” \n Class is :” + tag.getClass()); } }; parser.visitAllNodesWith(visitor); } catch (ParserException e) { e.printStackTrace(); }
- 采用Filter方式访问html
try { NodeFilter filter = new NodeClassFilter(LinkTag.class); Parser parser = new Parser(); parser.setURL(”http://www.google.com")/; parser.setEncoding(parser.getEncoding()); NodeList list = parser.extractAllNodesThatMatch(filter); for (int i = 0; i < list.size(); i++) { LinkTag node = (LinkTag) list.elementAt(i); logger.fatal(”testLinkTag() Link is :” + node.extractLink()); } } catch (Exception e) { e.printStackTrace(); }
- 采用org.htmlparser.beans方式
另外htmlparser 还在org.htmlparser.beans中对一些常用的方法进行了封装,以简化操作,例如:
Parser parser = new Parser(); LinkBean linkBean = new LinkBean(); linkBean.setURL(”http://www.google.com")/; URL[] urls = linkBean.getLinks(); for (int i = 0; i < urls.length; i++) { URL url = urls[i]; logger.fatal(”testLinkBean() -url is :” + url); }
相关推荐
用户可以通过此文件了解如何使用API来解析HTML文档,包括不同类、方法和属性的详细说明。 2. **PaserHtml3.java**:这应该是项目中的一个示例源代码文件,演示了如何使用HTMLParser库解析HTML。通过阅读和运行这个...
6. **API文档**:提供的`HTMLParser-2[1].0-API.CHM`文件是API的离线帮助文档,通常包含类的详细说明、方法签名、示例代码等内容,对于学习和使用HTMLParser API非常有帮助。 在实际应用中,HTMLParser API常被用于...
Htmlparser.chm文件很可能是一个帮助文档,包含了关于Winista.Htmlparser库的详细说明、API参考、示例代码和使用指南。通常,CHM(Compiled Help Manual)文件是微软编译的帮助文件格式,用户可以通过它来查找库的...
标题“由新水浒到htmlparser的一次运用”暗示了这篇...同时,压缩包中的"HTMLParser+API.CHM"文件很可能是HTMLParser的API文档,包含了关于库的所有函数、方法和类的详细说明,是学习和使用HTMLParser的重要参考资料。
本篇文章将深入探讨HTMLParser2中的DOM节点类型,并结合TypeScript的相关特性进行详细说明。 DOM(Document Object Model)是W3C组织定义的一种标准,用于表示HTML或XML文档的树形结构。在HTMLParser2中,DOM节点...
通过HTMLParser,我们可以解析这些链接,并将其转化为类目层次结构的数据结构,如树形结构。 这个程序的运行方式是设定一个提取的类目树深度。类目树深度是指从根类目到最远叶子类目的最大链接数。例如,如果设置...
这个API文档包含了对HTMLParser库的详细使用说明,是开发者理解和运用该库的重要参考资料。 HTML解析是Web开发中的核心部分,尤其是在进行数据抓取、网页自动化或者移动应用中展示网页内容时。HTMLParser提供了丰富...
1. **源代码目录(src)**:包含Java源代码文件,这些文件可能包括爬虫主类、网页解析类、数据存储类等,命名可能如`SohuSpider.java`, `PageFetcher.java`, `HTMLParser.java`等。 2. **配置文件(config)**:可能...
这是一个实例,说明了如何将爬取的数据组织成结构化的格式,以便进行后续的处理和存储。 总结起来,本篇文章主要介绍了使用Python进行网络爬虫的编写,以及如何将获取的数据进行存储和可视化处理。通过实例操作演示...
"HTMLparser"和"HTMLparserMain"可能是库的核心代码文件,其中"HTMLparser"可能包含了解析和操作DOM的主要逻辑,而"HTMLparserMain"可能是一个示例或者入口点,展示如何在实际项目中引入和使用这个库。 使用这样的...
以一个具体的示例来说明,假设我们要从淘宝网的某个商品详情页中提取关键信息,如价格、运费、所在地区和收藏人气。首先,我们需要导入必要的包,如下所示: ```java import java.util.List; import ...
3. HTML解析器(HTMLParser):解析器将HTML文档结构化,包括开始标签、结束标签、属性等,为后续的DOM树构建打下基础。 4. JavaScript 引擎:这一部分主要讲述了源代码解析、语法树的构建、字节码生成、JIT编译...
接着,论文介绍了基础组件与框架,重点提到了HttpClient包在数据采集中的作用。HttpClient是Apache组织提供的一个开源项目,用纯Java实现,支持HTTP协议的1.0和1.1版本,且支持HTTPS加密协议。它在数据采集解决方案...
在这个例子中,用户需要自行添加这部分代码,比如使用ThinkPHP的模型和数据库操作类来保存抓取到的信息。 关于“下载小说存为文本文档”,这表明爬虫的示例可能是从网络上抓取小说内容,并将其转换为文本文件格式。...