`
xcy13638760
  • 浏览: 52469 次
社区版块
存档分类
最新评论

java 网页解析工具包 Jsoup

 
阅读更多

Jsoup是一个非常好的解析网页的包,用java开发的,提供了类似DOM,CSS选择器的方式来查找和提取文档中的内容。

相关资料如下:

下载地址:http://jsoup.org/download

中文文档资料:http://www.open-open.com/jsoup/

比较好的文档:http://www.ostools.net/apidocs/apidoc?api=jsoup-1.6.3


今天做了一个Jsoup解析网站的项目,使用Jsoup.connect(url).get()连接某网站时偶尔会出现

java.net.SocketTimeoutException:Read timed out异常。

原因是默认的Socket的延时比较短,而有些网站的响应速度比较慢,

所以会发生超时的情况。


解决方法:

链接的时候设定超时时间即可。

doc = Jsoup.connect(url).timeout(5000).get();

5000表示延时时间设置为5s。


测试代码如下:

1,不设定timeout时:

  1. packagejsoupTest;
  2. importjava.io.IOException;
  3. importorg.jsoup.*;
  4. importorg.jsoup.helper.Validate;
  5. importorg.jsoup.nodes.Document;
  6. importorg.jsoup.nodes.Element;
  7. importorg.jsoup.select.Elements;
  8. publicclassJsoupTest{
  9. publicstaticvoidmain(String[]args)throwsIOException{
  10. Stringurl="http://www.weather.com.cn/weather/101010400.shtml";
  11. longstart=System.currentTimeMillis();
  12. Documentdoc=null;
  13. try{
  14. doc=Jsoup.connect(url).get();
  15. }
  16. catch(Exceptione){
  17. e.printStackTrace();
  18. }
  19. finally{
  20. System.out.println("Timeis:"+(System.currentTimeMillis()-start)+"ms");
  21. }
  22. Elementselem=doc.getElementsByTag("Title");
  23. System.out.println("Titleis:"+elem.text());
  24. }
  25. }

有时发生超时:

java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.www.http.ChunkedInputStream.fastRead(Unknown Source)
at sun.net.www.http.ChunkedInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at org.jsoup.helper.DataUtil.readToByteBuffer(DataUtil.java:113)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:447)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:393)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:159)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:148)
at jsoupTest.JsoupTest.main(JsoupTest.java:17)

Time is:3885ms
Exception in thread "main" java.lang.NullPointerException
at jsoupTest.JsoupTest.main(JsoupTest.java:25)


2,设定了则一般不会超时

  1. packagejsoupTest;
  2. importjava.io.IOException;
  3. importorg.jsoup.*;
  4. importorg.jsoup.helper.Validate;
  5. importorg.jsoup.nodes.Document;
  6. importorg.jsoup.nodes.Element;
  7. importorg.jsoup.select.Elements;
  8. publicclassJsoupTest{
  9. publicstaticvoidmain(String[]args)throwsIOException{
  10. Stringurl="http://www.weather.com.cn/weather/101010400.shtml";
  11. longstart=System.currentTimeMillis();
  12. Documentdoc=null;
  13. try{
  14. doc=Jsoup.connect(url).timeout(5000).get();
  15. }
  16. catch(Exceptione){
  17. e.printStackTrace();
  18. }
  19. finally{
  20. System.out.println("Timeis:"+(System.currentTimeMillis()-start)+"ms");
  21. }
  22. Elementselem=doc.getElementsByTag("Title");
  23. System.out.println("Titleis:"+elem.text());
  24. }
  25. }

输出为:

Time is:4158ms
Title is:顺义天气预报-今日_明日_一周天气预报:16日星期五 多云转晴 11/-4℃


3、

分享到:
评论

相关推荐

    Jsoup库文件;Jsoup解析Java包

    Jsoup是一款强大的Java库,专为处理HTML文档而设计,同时也支持XML解析。它提供了简单易用的API,使得开发者可以方便地抓取、解析、修改...无论是进行网页爬虫开发,还是处理网页内容,Jsoup都是一个不可多得的工具。

    java网页抓取Jsoup包全

    Jsoup包全指的是包含所有必要组件的完整Jsoup集合,以确保能进行完整的网页抓取工作。 Jsoup的核心组件是`jsoup-1.8.1.jar`,这是Jsoup的主要库文件,包含了所有必需的类和方法,使得开发者能够轻松地连接到网站,...

    Jsoup解析网页工具类

    **Jsoup:强大的Java网页解析库** Jsoup是一款优秀的开源Java库,专为网页解析而设计,具有简单易用的API,使得从HTML文档中提取结构化数据变得轻而易举。它支持HTML5和HTML4标准,允许开发者在处理网页内容时,...

    java解析工具包

    本文将深入探讨四个流行的Java解析库:Fastjson、Dom4j、Jdom和Jsoup,它们各自具有独特的优势和适用场景。 首先,Fastjson是阿里巴巴开源的一个高性能的JSON库。它提供了极简的API,使得在Java对象和JSON数据之间...

    网页爬虫工具jsoup,jar包

    这个"网页爬虫工具jsoup,jar包"是用于实现这一目标的资源,它包含了Jsoup库的jar文件,使得开发者可以直接在Java项目中使用该库。 Jsoup库的主要功能包括: 1. 解析HTML:Jsoup能够将HTML文档解析成一个复杂的DOM...

    java org jar包 以及 org.jsoup开发包合一

    Jsoup模仿了DOM解析器的工作方式,但同时也考虑到了性能和易用性,使得在Java中处理网页内容变得更加方便。其主要功能包括: 1. HTML解析:Jsoup可以解析HTML字符串或者从URL加载HTML,生成一个可操作的DOM树。 2. ...

    java抓包程序jsoup实例

    Java抓包程序是一个用于捕获和分析网络数据流的工具,通常用于开发、调试和测试网络应用程序。在本例中,我们关注的是使用Jsoup库进行网页数据抓取的实践应用。Jsoup是一个非常强大的Java库,它允许开发者解析HTML...

    java excel解析jar包 poi

    下面将详细介绍Java使用POI进行Excel解析的相关知识点: 1. **安装与导入**:首先,你需要将下载的"poi" jar包导入到你的Java项目中。在Maven项目中,可以通过在pom.xml文件中添加依赖来实现: ```xml ...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    JAVA jSOUP解析html

    总结,jSoup是Java中解析和操作HTML的强大工具,其易于使用的API简化了网页数据的提取过程。结合`UrlUtils.java`这样的辅助工具类,可以构建高效稳定的网页爬虫系统,进行定制化的数据采集任务。

    java爬虫需要的jsoup包和httpclient包.rar

    在这个压缩包文件中,包含了两个关键的库:Jsoup和Httpclient,它们是Java爬虫开发中常用的工具。 **Jsoup** 是一个Java库,设计用于处理实际世界的HTML。它提供了非常方便的API,用于提取和操作数据,使用DOM、CSS...

    jsoup-jar包

    **JSoup:Java的网页抓取与解析库** JSoup是一个用Java编写的开源库,专为处理HTML文档而设计。它提供了丰富的API,使得开发者能够轻松地抓取、解析和操作网页内容。JSoup的核心功能包括从网络或本地文件系统获取...

    用Jsoup解析html的所有jar包

    在Java开发中,如果你需要从网页上提取数据或者进行Web抓取,Jsoup是一个理想的选择。这个压缩包文件“用Jsoup解析html的所有jar包”显然是包含了使用Jsoup进行HTML解析所需的全部依赖。 首先,我们需要了解Jsoup的...

    jsoup网页分析jar包

    **jsoup网页分析jar包** 是一款用于Java的开源库,专门设计用于处理HTML文档,进行网页抓取和解析。它的全名是Jsoup,它提供了丰富的API来简化HTML的处理,使开发者能够轻松地提取数据,操作DOM,以及执行CSS和...

    Jsoup工具jar包

    这个"Jsoup工具jar包"包含了开发者在使用Jsoup进行网页抓取、解析和操作时所需要的核心组件。以下是关于Jsoup及其相关jar包的详细知识: 1. **Jsoup简介**:Jsoup是由Jonas John开发的一个开源项目,它提供了方便、...

    html解析工具 jsoup-1.8.1.jar

    **JSoup:强大的HTML解析库** ...综上所述,JSoup是一个强大的HTML解析工具,其简洁的API使得开发者能快速上手并高效地处理HTML数据。在Java项目中直接引入"jsoup-1.8.1.jar",就可以享受到这些便利。

    jsoup1.10_jsoupjar包网页_

    "jsoup.jar包"是该库的Java归档(JAR)文件,它是Java应用程序的可执行文件,包含了jsoup的所有类和资源,使得开发者能够将其引入项目中进行网页爬虫相关的开发。 **网页爬虫基础** 网页爬虫是一种自动化程序,...

    jsoup解析html所需包1.7.3

    标题中的"jsoup解析html所需包1.7.3"表明我们将讨论的是JSoup 1.7.3版本,这个版本包含了三个关键的组件。 1. **jsoup-1.7.3.jar**:这是JSoup的核心库文件,包含了所有用于解析HTML的类和方法。开发人员在项目中...

    jsoup-1.11.3.jar

    它的最新版本是1.11.3,这个版本的Jsoup提供了.jar文件,包括`jsoup-1.11.3.jar`,这使得Java开发者可以方便地将其集成到他们的项目中,进行网页抓取和分析任务。`jsoup-1.11.3-javadoc.jar`包含了该版本的API文档,...

    jsoup常用包下载

    这使得jsoup成为了一个功能齐全的网页抓取工具。你可以设置请求头、超时时间,甚至处理重定向。 ```java Response response = Jsoup.connect("http://example.com").execute(); Document doc = response.parse(); `...

Global site tag (gtag.js) - Google Analytics