最近在写一个爬虫程序,需要分析HTML,网上开源的HTML分析库也不少,为了挑战一下,自己写了一个。
测试代码——提取网页中的<a...></a>标签的href路径,拿google做试验。
运行环境:JDK1.6以上
package org.zergle.w3c.html.lex;
import java.io.IOException;
import java.net.URL;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.html.HTMLReader;
public class TestHTMLReader {
@Test
public void testReadDocument() {
try {
HTMLReader reader = new HTMLReader(new URL("http://g.cn"));
Document doc = reader.readDocument();
NodeList links = doc.getElementsByTagName("A");
for (int i = 0; i < links.getLength(); i++) {
Node node = links.item(i);
if (node.hasAttributes()) {
NamedNodeMap attrs = node.getAttributes();
Node attr = attrs.getNamedItem("href");
if (attr != null) {
System.out.println(attr.getNodeValue());
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
打印结果如下:
http://images.google.cn/imghp?hl=zh-CN&tab=wi
http://video.google.cn/?hl=zh-CN&tab=wv
http://ditu.google.cn/maps?hl=zh-CN&tab=wl
http://news.google.cn/nwshp?hl=zh-CN&tab=wn
http://www.google.cn/music?hl=zh-CN&tab=wU
http://wenda.tianya.cn/wenda/?hl=zh-CN&tab=wH
http://laiba.tianya.cn/laiba/Top?hl=zh-CN&tab=wG
http://www.google.cn/intl/zh-CN/options/
/url?sa=p&pref=ig&pval=3&q=http://www.google.cn/ig/china%3Fsource%3Diglk%26hl%3Dzh-CN&usg=AFQjCNE-fPlHBZ4IREs-KKjdCDT7u-BkSw
/preferences?hl=zh-CN
http://www.google.cn/search?hl=zh-CN&source=hp&q=%E6%B8%A9%E5%93%A5%E5%8D%8E2010%E5%B9%B4&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=
/advanced_search?hl=zh-CN
/language_tools?hl=zh-CN
/aclk?sa=L&ai=COHUX_MSHS5GGJIe67APZ1YGdDpvhip8Bm4Dy4w_B2ZzZExABIMFUUKzQj4ACYJ0BqgRyT9AXyubQppSOik1N2jZLTzgNFf3oSk8zeN1r_qfnCXmWa95EK5nQAF8KhR8_PxBB7L2gUqR7D10BXJmEPwgB8cBEKsMWJvi_SmOCdtdATchCbNwyBAsjlJq93Brvc55n5_CuvjrNk2N2w3J2fz0Z1Vra&num=1&sig=AGiWqtz_TF-ZN5OkAn_lszxgyfq_UXUFew&q=http://www.google.com/intl/zh-CN/landing/games10/index.html%23utm_campaign%3Dzh-CN%26utm_medium%3Dhpp%26utm_source%3Dhpp-na-us-gns-svn
/intl/zh-CN/ads/
/intl/zh-CN/about.html
http://www.google.com/ncr
/intl/zh-CN/privacy.html
http://www.miibeian.gov.cn/
由于刚刚完成,没有经过严格测试,如果哪位朋友发现BUG的,请与我联系。
分享到:
相关推荐
DOM4J这个名字是“Document Object Model for Java”的缩写,但它并不仅仅遵循W3C的DOM标准,而是结合了DOM、SAX和JDOM的优点,使得XML处理更为高效和灵活。 DOM4J的核心特性包括: 1. **DOM API**:DOM4J实现了...
本篇文章将深入探讨Dom4J库如何解析XML源代码,并介绍其在创建XML文件时的应用。 首先,让我们了解什么是DOM(Document Object Model)。DOM是W3C制定的一种编程接口,用于处理XML和HTML文档。它将XML文档视为一棵...
描述中提到这两个版本包含了源码和文档,这意味着用户可以查看源代码以了解其内部工作原理,并且有官方文档帮助开发者理解和使用DOM4J库。 **DOM4J知识点** 1. **DOM4J概述**:DOM4J是一个开源项目,它提供了全面...
在压缩包中的“w3c”文件,很可能是与W3C标准相关的源代码或者文档,可能包含了W3C规范的实现细节,或者是使用C++编写的相关工具或库。这些资源对于学习Web开发、浏览器内核原理,或者对C++在Web领域的应用有深入...
描述中提到的"source.jar",即"dom4j-2.1.1-sources.jar",是DOM4J的源代码包,包含了DOM4J库的所有源代码。这对于开发者来说非常有价值,因为它允许他们查看和学习DOM4J的内部实现,调试问题,或者根据需要进行...
5. Web标准与最佳实践:北大青鸟ACCP4.0的源代码遵循W3C的Web标准,教导学员如何编写符合规范的代码,同时融入了一些最佳实践,如语义化HTML、响应式设计等,帮助学员养成良好的编程习惯。 6. 教师指导用书源代码:...
在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...
9. **兼容性和标准**:浏览器需要遵循W3C或WHATWG的标准,确保在不同设备和操作系统上的兼容性。源代码需要处理各种浏览器差异和特性检测。 10. **本地存储和离线应用**:现代浏览器支持Web Storage(localStorage...
W3C(World Wide Web Consortium)是国际公认的互联网标准制定组织,它为HTML提供了规范和指南,确保了网络的互操作性和兼容性。W3C School HTML教程是一份详细且全面的学习资源,适合初学者和有一定基础的开发者...
"W3C DOM API" 是 Web 开发中用于处理文档对象模型(Document Object Model)的标准接口,它允许程序通过 JavaScript 或其他语言与 HTML 和 XML 文档交互。 **描述分析:**描述中的重复 "DOM DE DOM DOM DOMMMMMMM...
W3C(World Wide Web Consortium)是制定Web标准的国际组织,包括HTML、XML、CSS、DOM等一系列规范。W3C的官方API文档为开发者提供了权威的参考资源,详尽解释了各种标准的使用方法和行为,有助于确保代码的兼容性...
src.zip文件包含了DOM4J的源代码,这对于理解DOM4J的工作原理和自定义扩展非常有帮助。通过阅读源码,你可以深入学习DOM4J如何处理XML文档,了解其实现细节,如解析过程、节点管理、XPath引擎等。这对于提升编程技巧...
DOM4J 提供了与W3C DOM兼容的接口,使得熟悉DOM的开发者能够无缝过渡。DOM4J的Element、Attribute、Text等类对应于DOM中的相应节点,这使得操作XML就像操作Java对象一样简单。 ### 5. 事件处理 DOM4J支持事件驱动...
- **DOMReader**:从一个已经存在的W3C DOM树构建DOM4J树。 ##### 1. 构建DOM4J树 使用`SAXReader`从XML文件构建DOM4J树的示例如下: ```java import org.dom4j.Document; import org.dom4j.io.SAXReader; ...
从提供的压缩包“78”中,我们可以期待找到实现这些特性的源代码、图片资源、CSS样式文件以及可能的JSON配置文件。通过学习和分析这些文件,开发者可以了解如何创建一个既符合W3C标准又具有良好用户体验的对联广告。...
4. **文档对象模型**:DOM4J的文档对象模型(Document Object Model)是面向对象的,比标准的W3C DOM更易于使用。它的API设计得更加直观,降低了XML操作的复杂性。 5. **XPath支持**:DOM4J支持XPath 1.0规范,可以...
8. **文档对象模型**:DOM4j虽然名为“DOM”,但它并不完全遵循W3C的DOM标准。它的设计更加面向Java开发者,提供了更直观的API和更少的内存消耗。 9. **性能与效率**:相比标准DOM,DOM4j在内存使用和速度上有优势...
w3school的JavaScript教程包括变量、函数、DOM操作等内容,源码展示了实际的JavaScript代码在网页中的应用,有助于提升动态网页的编程能力。 4. **数据库教程** w3school还提供SQL教程,讲解如何使用SQL...
DOM是W3C(万维网联盟)定义的一个标准,它将HTML或XML文档结构化为一个树形结构,使得每个元素、属性和文本都可以被独立访问和修改。 这篇名为“htmldom_document”的博文可能详细介绍了如何使用这个PHP库来操作...
- DOM解析器的核心类是`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`。 - 首先,你需要创建一个`DocumentBuilderFactory`实例,然后使用`newDocumentBuilder()`方法生成`DocumentBuilder`...