`
cjp1989
  • 浏览: 162145 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Jsoup网页内容抓取分析(1)

阅读更多

     在Java 程序在解析HTML 文档时,大家应该晓得htmlparser 这个开源项目,我也是使用过,不过这个程序到了2006年就没有更新了。由于我的基础较差,对于扩展自定义的标签还是不太懂,还是有超时问题困扰,偶然的机会中发现有jsoup,而且更新到了1.72版,使用起来还是很容易上手的。下面写些使用心得:

        jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.

       jsuop是一款java的html解析器,提供一套非常省力的API,通过dom模型css和类似于jquery的方式来获取和操作数据。

      功能:1.解析一个Html文档,2.解析一个body片段

       

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);//分析文档,使用doc.toString()可以转为文本
Element body=doc.body();//获取body片段,使用body.toString()可以转为文本

     

      获取方式:1.从本地文件加载   2.根据url地址获取

 

     

/**使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法
 *其中baseUri参数用于解决文件中URLs是相对路径的问题。
 *如果不需要可以传入一个空的字符串。
 */
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

  

/**
 *根据url直接获取内容,可以加入超时,get方法不行,就用post方法
 *我在实际应用中,出现404,405,504等错误信息
 *将get改为post就可以,或者反过来改
 *如果等以后弄明白了,再来解释清楚
 */
Document doc1 = Jsoup.connect("http://www.hao123.com/").get();
String title = doc1.title(); //获取网页的标题
String content=doc1.toString();//将网页转为文本

Document doc2 = Jsoup.connect("http://www.hao123.com")
  .data("query", "Java")//请求参数
  .userAgent("Mozilla")//设置urer-agent
  .cookie("auth", "token")//设置cookie
  .timeout(50000)//设置连接超时
  .post();//或者改为get

 

 

 

 

16
5
分享到:
评论
17 楼 fwjuinsun 2013-12-20  
mz0827 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。


我开发的这个功能已经大范围在使用了。主要也是基于配置,配置的对象包括:
1.网站
  提供要采集的网站的信息
2.栏目
  采集某一栏目的内容,比如新浪的新闻
3.页面
  列表页面、数据页面,有的有跳转页面
4.字段
  挂在页面上。就是要从一个页面上获取哪些信息,每一个信息就是一个字段

我现在也对这块有兴趣,但问题是我需要抓取的内容是分页,有没有什么好主意才能把分页的内容全都抓到呢?还有就是对于一些在网址上不带参的,如果去抓取结果页面呢?
16 楼 cjp1989 2013-02-26  
mz0827 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。


我开发的这个功能已经大范围在使用了。主要也是基于配置,配置的对象包括:
1.网站
  提供要采集的网站的信息
2.栏目
  采集某一栏目的内容,比如新浪的新闻
3.页面
  列表页面、数据页面,有的有跳转页面
4.字段
  挂在页面上。就是要从一个页面上获取哪些信息,每一个信息就是一个字段

不错的思路!
15 楼 mz0827 2013-02-26  
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。


我开发的这个功能已经大范围在使用了。主要也是基于配置,配置的对象包括:
1.网站
  提供要采集的网站的信息
2.栏目
  采集某一栏目的内容,比如新浪的新闻
3.页面
  列表页面、数据页面,有的有跳转页面
4.字段
  挂在页面上。就是要从一个页面上获取哪些信息,每一个信息就是一个字段
14 楼 cjp1989 2013-02-21  
superchinaren 写道
cjp1989 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

这个我正在做通用配置,有很多的参数要设置,根据div,table不同,从数据库里读取配置信息。大部分的网站是可以统一处理的额


做出来后。欢迎也写写BLOG 学习一下。个人目前对这块比较感兴趣

目前已经在测试,性能还是很好的,通用配置只能针对大部分的网站,要费些时间才能做出来,而且可能不完善...因为有些网页结构真的很蛋疼
13 楼 superchinaren 2013-02-21  
cjp1989 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

这个我正在做通用配置,有很多的参数要设置,根据div,table不同,从数据库里读取配置信息。大部分的网站是可以统一处理的额


做出来后。欢迎也写写BLOG 学习一下。个人目前对这块比较感兴趣
12 楼 cjp1989 2013-02-20  
linweibin 写道
用jsoup大部分的网站都是可以做同意处理的,特别是像新闻类的网站或者微博

我现在就是做的新闻类网站的内容截取,分析
11 楼 linweibin 2013-02-20  
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

用jsoup大部分的网站都是可以做同意处理的,特别是像新闻类的网站或者微博
10 楼 cjp1989 2013-02-19  
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

这个我正在做通用配置,有很多的参数要设置,根据div,table不同,从数据库里读取配置信息。大部分的网站是可以统一处理的额
9 楼 superchinaren 2013-02-19  
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。
8 楼 cjp1989 2013-02-19  
linweibin 写道
mz0827 写道
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

这两个一般都是结合使用的

赞同,谢谢指教,现在在做通用配置,还有好多要解决的问题!
7 楼 linweibin 2013-02-19  
mz0827 写道
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

这两个一般都是结合使用的
6 楼 cjp1989 2013-02-19  
sanshizi 写道
这个库不错

确实是很好的!
5 楼 sanshizi 2013-02-19  
这个库不错
4 楼 cjp1989 2013-02-19  
asialee 写道
jsoup的api定义的非常好

完全赞同,我也是觉得这个好用!
3 楼 cjp1989 2013-02-19  
mz0827 写道
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

谢谢,我一定试下。
我用java自带的httpURLConnection获取链接,发现耗时比较大,而且还有的无法加载出来,自己写了个demo比较耗时,发现jsoup综合还是快于HttpURLConnection。
2 楼 asialee 2013-02-19  
jsoup的api定义的非常好
1 楼 mz0827 2013-02-19  
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

相关推荐

    jsoup 网页信息 抓取 选择器

    jsoup特别适用于小型到中等规模的网页抓取任务,它能够高效地解析HTML,从而提取出我们需要的数据,如新闻标题、内容、作者信息等。 **CSS选择器** CSS选择器是jsoup的一大亮点。它们允许我们像在浏览器中定位元素...

    jsoup网页内容分析

    6. **网络连接**:JSoup可以直接通过`Jsoup.connect(url).get()`建立HTTP连接并下载HTML内容,简化了网页抓取的过程。 ### HTMLParser的替代原因 HTMLParser虽然也是一个强大的HTML解析库,但由于长时间未更新,...

    Http,Jsoup-网页数据抓取

    此外,Jsoup还具备良好的错误处理机制,可以处理不规范的HTML代码,极大地简化了网页抓取的复杂度。 在这个"Http,Jsoup-网页数据抓取"的示例中,开发者可能展示了如何使用Http协议发送请求到广石化教务系统的服务器...

    httpClient+jsoup 抓取网页数据

    下面我们将详细探讨这两个库及其在网页抓取中的应用。 HttpClient是由Apache软件基金会开发的一个库,主要用于执行HTTP请求。它提供了全面的HTTP协议支持,包括GET、POST、PUT等方法,以及处理Cookie、重定向、认证...

    java+jsoup抓取网页数据

    在IT行业中,网络数据抓取是一项重要的技能,它允许...不过,网页抓取技术日新月异,保持对新技术和最佳实践的关注是持续提升的关键。在实践中,你可能会遇到各种挑战,但只要掌握了基本原理和技巧,就能灵活应对。

    Jsoup抓取整个网站

    **Jsoup:网页抓取与解析利器** Jsoup是一个用于处理实际世界HTML的Java库。它提供了非常方便的API,用于提取和操作数据,使用DOM,CSS和微选择器。在本篇中,我们将深入探讨如何使用Jsoup来抓取整个网站,并将其...

    jsoup网页分析jar包

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

    用jsoup抓取网页数据

    本教程将深入探讨如何使用Jsoup有效地从网页中提取信息,并最终将其转化为JSON格式,为数据分析或应用程序接口(API)提供便利。 ### 1. Jsoup简介 Jsoup是由Jesse Wilson创建的一个开源项目,它的核心功能是解析...

    jsoup网页爬虫小案例

    **jsoup网页爬虫小案例** 在这个案例中,我们将探讨如何使用Java的Jsoup库来实现...通过学习和实践这个"jsoup网页爬虫小案例",你将能够掌握如何利用Jsoup创建自己的爬虫项目,为日后的数据挖掘和分析打下坚实的基础。

    jsoup1.8.1抓取爬虫工具

    **jsoup1.8.1抓取爬虫工具** jsoup是Java领域中一款非常流行的HTML解析库,它主要用于处理实际世界中的HTML,提供了一种干净、简单的API来提取和...通过深入学习和实践,你可以利用jsoup实现各种复杂的网页抓取任务。

    使用Jsoup,抓取整个网站(包括图片、js、css)

    总结来说,这个项目利用Jsoup和Java的强大力量,实现了高效、全面的网站抓取功能,不仅可以抓取HTML内容,还能抓取并保存相关资源,为离线浏览、数据备份和分析提供了便利。通过学习和掌握这种方法,开发者可以更好...

    Android_Jsoup网页爬虫案例

    **Android Jsoup网页爬虫案例** Jsoup是一个Java库,设计用于处理真实世界的HTML,它提供了非常方便的API,用于提取和操作数据,使用DOM、CSS以及类似于jQuery的方法。在Android开发中,我们有时需要从网页上抓取...

    httpClient+jsoup抓取网页数据实例和jar包

    在IT领域,网络爬虫是获取网页...总的来说,HttpClient和Jsoup是Java开发者进行网页抓取和数据提取的得力助手。通过熟悉这两个库的使用,可以轻松地构建出强大的网络爬虫系统,从而高效地获取和分析互联网上的信息。

    Jsoup抓取一个完整的网站.rar

    请注意,进行网页抓取时需遵守网站的robots.txt文件规定以及相关的网络使用法规,避免侵犯他人的版权和隐私。同时,频繁的抓取可能会对目标服务器造成压力,因此在实际应用中应考虑合理安排抓取频率和并发控制。

    htmlunit2.8 + jsoup1.7网站数据抓取

    在IT领域,网站数据抓取是一项重要的技能,用于获取网页上的结构化信息,例如新闻文章、产品价格或用户评论。本项目重点介绍了如何利用htmlunit2.8和jsoup1.7这两个强大的库来实现这一目标。下面我们将深入探讨这两...

    jsoup分页爬取网页

    在网页爬虫领域,jsoup尤其适用于抓取和分析结构化的HTML内容。 在进行分页爬取网页时,通常涉及到以下几个关键知识点: 1. **URL构造与导航**:首先,我们需要了解如何构建正确的URL来获取不同页面的数据。分页...

    jsoup解析网页

    在进行网页抓取时,务必遵守网站的robots.txt协议,尊重版权,不滥用服务,避免对目标网站造成过大压力。同时,许多网站需要用户授权才能访问,确保你的爬虫行为符合法律法规。 总结,jsoup提供了一种高效、便捷的...

    使用Jsoup解析html网页

    1. **数据抓取**:Jsoup可以轻松抓取网页上的结构化数据,如商品价格、评论等,用于数据分析或构建应用。 2. **网站验证**:在自动化测试中,Jsoup可以帮助验证HTML元素是否按预期显示或交互。 3. **内容过滤**:...

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

    通过上述方法,结合Jsoup和HttpClient,开发者可以构建出一个能够抓取动态网页内容的爬虫程序。这不仅适用于商品价格的抓取,也适用于其他需要抓取动态数据的场景。但需要注意的是,爬取数据时应遵守网站的robots....

    Jsoup-网络爬虫项目

    - 利用Jsoup进行网页抓取,可以实现新闻标题的收集、商品信息的获取、评论内容的抓取等多种任务。 - 学习这个项目,你可以了解到如何从网页中抓取特定数据,如链接、标题、内容等,并将这些数据保存到文件或数据库...

Global site tag (gtag.js) - Google Analytics