`
hujin1979
  • 浏览: 80146 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用httpclient-4.0-alpha2 打造基于http协议的网站分析器

阅读更多
  该项目目的是给需要用java技术分析网站元素信息并可执行JS脚本的一个开发型的轻量级JAVA浏览器。为什么叫浏览器,是因为这个项目的最终目的是要向IE等浏览器看齐,当然这个任务是很复杂的。
  首先你得先了解几个JAVA包的功能和特性。
  HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。
  1.HttpClient简介:
  HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,更多使用 HttpClient 的应用可以参见http://wiki.apache.org/jakarta-httpclient/HttpClientPowered。HttpClient 项目非常活跃,使用的人还是非常多的。目前 HttpClient 版本是httpclient-4.0-alpha2。
  HttpClient 功能介绍
  以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。

  实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
  支持自动转向
  支持 HTTPS 协议
  支持代理服务器等

  HttpClient 可以在http://jakarta.apache.org/commons/httpclient/downloads.html下载

  2.NekoHTML
  J. Andrew Clark用Java写了一系列的工具(Java APIs),NekoHTML是其中之一。
  NekoHTML是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能投扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档过程中常犯的错误。NekoHTML能增补缺失的父元素、自动用结束标签关闭相应的元素,以及不匹配的内嵌元素标签。NekoHTML的开发使用了Xerces Native Interface (XNI),后者是Xerces2的实现基础。
   使用NekoHTML:

   a.透明地创建HTML解析器
  利用Xerces2.0为基础,应用程序通过JAXP实例化解析器对象时,可以透明地创建HTML解析器,此时只需要将NekoHTML的jar文件,在CLASSPATH中放在Xerces的jar文件之前即可。nekohtmlXni.jar中的META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration文件会被Xerces的读取并取代标准的设置文件,此处org.apache.xerces.xni.parser.XMLParserConfiguration文件的内容就是一个字符串“org.cyberneko.html.HTMLConfiguration”。这种方法的好处是简单透明,缺点是影响了Xerces在其它情况下的使用。

    b.便利的HTML解析器类
  要想避免上述的问题,可以使用org.cyberneko.html.parsers包的DOM和SAX解析器类来创建解析器,这两个类都使用了HTMLConfiguration类。解析器一旦创建之后,就可以解析HTML文件,并用标准的XML接口来访问文件中的信息,就象面对的是一个XML文件一样。

  3.由mozilla提供的脚本运行器
   在java下也有不少脚本引擎,像什么什么的——都没记住,不过最后还是选择了执行javascript脚本的引擎rhino,原因很简单,javascript脚本我会用,且据说rhino执行效率还行。rhino的下载地址:http://www.mozilla.org/rhino/download.html。
  大家可以参考:http://www.mozilla.org/rhino/
  我已经将已经开发的项目代码发布出来了,有兴趣的可以一起参与讨论!

 
  • browser.rar (2.4 MB)
  • 描述: myeclipse项目全部文件
  • 下载次数: 573
5
0
分享到:
评论
8 楼 hyl2011 2012-12-29  
做网站裁制平台hylxinlang@sina.cn
7 楼 rendong 2011-04-11  
请教:做网站抓取应用,你这个包能执行页面总的javascript代码么?
6 楼 diddyrock 2009-03-09  
等我下完看看再评论哈
5 楼 bhc1978 2009-02-26  
先下来看看
4 楼 gml520 2009-02-22  
谢谢,我先看看,不懂再来麻烦你!
3 楼 csu_sky007 2008-09-08  
高手+热心肠 THANKS !
2 楼 yach 2008-07-20  
nice
1 楼 hujin1979 2008-03-11  
怎么只有下载没有评论啊!?

相关推荐

    httpclient-4.0-beta2.jar

    httpclient-4.0-beta2.jarhttpclient-4.0-beta2.jarhttpclient-4.0-beta2.jarhttpclient-4.0-beta2.jarhttpclient-4.0-beta2.jarhttpclient-4.0-beta2.jarhttpclient-4.0-beta2.jarhttpclient-4.0-beta2.jar

    httpclient-4.0.jar

    httpclient-4.0.jar, httpclient-4.0.jar, httpclient-4.0.jar

    httpclient-4.0-beta1.jar

    httpclient-4.0-beta1.jar

    httpclient-4.1-alpha1.jar

    httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar

    httpclient-4.5jar

    httpclient-4.5所需jar包,里面包含httpclient-4.5.jar等等10个必须的开发包。 1.commons-codec-1.9.jar 2.commons-logging-1.2.jar 3.fluent-hc-4.5.jar 4.httpclient-4.5.jar 5.httpclient-cache-4.5.jar 6....

    httpclient 开发包以及例子

    在这个"httpclient 开发包以及例子"中,我们主要关注的是HttpClient 4.0-alpha2版本,以及与其相关的依赖库。 `httpclient-4.0-alpha2.jar`是HttpClient的核心库,包含了执行HTTP请求、处理响应和管理连接的主要类...

    commons-httpclient-3.1-alpha1.jar

    commons-httpclient-3.1-alpha1.jar

    httpcore-4.2.4,httpclient-4.2.5,httpclient-cache-4.2.5,httpmime-4.2.5的jar包下载

    **httpclient-4.2.5.jar** 是HttpClient的主要实现库,它基于HTTP Core构建,提供了更高级别的HTTP客户端服务。HttpClient提供了丰富的功能,如支持认证、重定向、Cookie管理、请求和响应的处理,以及自定义请求头等...

    httpclient-4.5.13-API文档-中文版.zip

    赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...

    jettison+reportng-1.1.4+velocity-dep-1.4+guice-4.0+httpclient-4.2.5

    httpclient-4.2.5.jar --http请求 jettison.jar --组装解析Json ojdbc7.jar --数据库操作 reportng-1.1.4.jar -- testng测试报告美化插件 velocity-dep-1.4.jar -- reportng-1.1.4.jar的依赖库 guice-4.0.jar ...

    httpclient-4.5.13-API文档-中英对照版.zip

    赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    httpclient-4.5.6-API文档-中文版.zip

    赠送jar包:httpclient-4.5.6.jar; 赠送原API文档:httpclient-4.5.6-javadoc.jar; 赠送源代码:httpclient-4.5.6-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.6.pom; 包含翻译后的API文档:httpclient...

    httpclient-4.4.1-API文档-中文版.zip

    赠送jar包:httpclient-4.4.1.jar; 赠送原API文档:httpclient-4.4.1-javadoc.jar; 赠送源代码:httpclient-4.4.1-sources.jar; 赠送Maven依赖信息文件:httpclient-4.4.1.pom; 包含翻译后的API文档:httpclient...

    httpclient-4.5.10-API文档-中文版.zip

    赠送jar包:httpclient-4.5.10.jar; 赠送原API文档:httpclient-4.5.10-javadoc.jar; 赠送源代码:httpclient-4.5.10-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.10.pom; 包含翻译后的API文档:...

    httpclient4.0-jar

    在本篇文章中,我们将深入探讨HttpClient 4.0的核心特性,以及如何在实际开发中使用它。 首先,HttpClient 4.0的核心功能在于支持HTTP/1.1协议,包括GET、POST、PUT、DELETE等常见HTTP方法。它还支持HTTPS,确保...

    httpclient-4.5.13-sources.jar

    httpclient-4.5.13-sources.jar

Global site tag (gtag.js) - Google Analytics