针对上一篇写的内容很简单,只是给大家抛出了有一个工具可以用来分析网页的内容,做java搜索爬虫使用,实际的使用并没有怎么介绍,现在这篇文章就来介绍一下用法,可能分析的不是很全面,欢迎批评。经过我的测试使用,jsoup分析网页结构和内容的功能远远强大于HtmlParser,无论是获取整个页面的文本,还是分析特定内容的网页结构,都是十分的方便。
附上链接:jsoup官网:http://jsoup.org/ ,中文jsoup:http://www.open-open.com/jsoup/
下面写些我的使用记录,希望大家如果能从我的方法中得到启发,鉴于本人从事开发工作不久,内容可能写的不是很好。
jsoup数据获取有两大方法:1.通过分析dom模型的网页标签和元素,2.select元素选择器,类似jquery方式(功能很强大,还支持正则表达式)。网页tag标签有body,div,table,tr,td,a,等等。元素的属性有,href,title,width,height,color等等,元素属性的值就是,例如:href=“www.baidu.com”, 值就是www.baidu.com 。width=“98%” 值就是98%
下面就以分析http://www.iteye.com首页的每日资讯为例,抓取每日资讯的标题和url地址,详细写出分析步骤:
1.用chrome浏览器的元素审查,分析页面的结构,得到每日资讯是div class=<main_left>层里面
2.写程序分析,首先根据url获取div文本,再来根据文本对内容进行分析
/** * 根据jsoup方法获取htmlContent * 加入简单的时间记录 * @throws IOException */ public static String getContentByJsoup(String url){ String content=""; try { System.out.println("time=====start"); Date startdate=new Date(); Document doc=Jsoup.connect(url) .data("jquery", "java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(50000) .get(); Date enddate=new Date(); Long time=enddate.getTime()-startdate.getTime(); System.out.println("使用Jsoup耗时=="+time); System.out.println("time=====end"); content=doc.toString();//获取iteye网站的源码html内容 System.out.println(doc.title());//获取iteye网站的标题 } catch (IOException e) { e.printStackTrace(); } System.out.println(content); return content; }
3. 根据整个每日资讯所在的div层,获取那段内容(精确获取)
/** * 使用jsoup来对文档分析 * 获取目标内容所在的目标层 * 这个目标层可以是div,table,tr等等 */ public static String getDivContentByJsoup(String content){ String divContent=""; Document doc=Jsoup.parse(content); Elements divs=doc.getElementsByClass("main_left"); divContent=divs.toString(); //System.out.println("div==="+divContent); return divContent; }
4.根据获取的目标层得到你所要的内容(title,url地址...等等)
/** * 使用jsoup分析divContent * 1.获取链接 2.获取url地址(绝对路径) */ public static void getLinksByJsoup(String divContent){ String abs="http://www.iteye.com/"; Document doc=Jsoup.parse(divContent,abs); Elements linkStrs=doc.getElementsByTag("li"); System.out.println("链接==="+linkStrs.size()); for(Element linkStr:linkStrs){ String url=linkStr.getElementsByTag("a").attr("abs:href"); String title=linkStr.getElementsByTag("a").text(); System.out.println("标题:"+title+" url:"+url); } }
5.加入main方法里面执行测试
/** * @method 测试获取内容程序 */ public static void main(String[] args) throws IOException { /** * 执行分析程序 */ String url="http://www.iteye.com/"; String HtmlContent=getContentByJsoup(url); String divContent=getDivContentByJsoup(HtmlContent); getLinksByJsoup(divContent); }
6.附上结束语:jsoup功能很好很强大,附上的只是简单的使用方法,还有很多需要完善的内容,我其实使用也不到几天的时间。还有就是select功能还是很好用的,具体参考官方文档,写的非常的通俗易懂!附上程序源码和jsoup的jar包
相关推荐
jsoup特别适用于小型到中等规模的网页抓取任务,它能够高效地解析HTML,从而提取出我们需要的数据,如新闻标题、内容、作者信息等。 **CSS选择器** CSS选择器是jsoup的一大亮点。它们允许我们像在浏览器中定位元素...
6. **网络连接**:JSoup可以直接通过`Jsoup.connect(url).get()`建立HTTP连接并下载HTML内容,简化了网页抓取的过程。 ### HTMLParser的替代原因 HTMLParser虽然也是一个强大的HTML解析库,但由于长时间未更新,...
此外,Jsoup还具备良好的错误处理机制,可以处理不规范的HTML代码,极大地简化了网页抓取的复杂度。 在这个"Http,Jsoup-网页数据抓取"的示例中,开发者可能展示了如何使用Http协议发送请求到广石化教务系统的服务器...
下面我们将详细探讨这两个库及其在网页抓取中的应用。 HttpClient是由Apache软件基金会开发的一个库,主要用于执行HTTP请求。它提供了全面的HTTP协议支持,包括GET、POST、PUT等方法,以及处理Cookie、重定向、认证...
在IT行业中,网络数据抓取是一项重要的技能,它允许...不过,网页抓取技术日新月异,保持对新技术和最佳实践的关注是持续提升的关键。在实践中,你可能会遇到各种挑战,但只要掌握了基本原理和技巧,就能灵活应对。
总结来说,这个项目利用Jsoup和Java的强大力量,实现了高效、全面的网站抓取功能,不仅可以抓取HTML内容,还能抓取并保存相关资源,为离线浏览、数据备份和分析提供了便利。通过学习和掌握这种方法,开发者可以更好...
**Jsoup:网页抓取与解析利器** Jsoup是一个用于处理实际世界HTML的Java库。它提供了非常方便的API,用于提取和操作数据,使用DOM,CSS和微选择器。在本篇中,我们将深入探讨如何使用Jsoup来抓取整个网站,并将其...
**jsoup网页分析jar包** 是一款用于Java的开源库,专门设计用于处理HTML文档,进行网页抓取和解析。它的全名是Jsoup,它提供了丰富的API来简化HTML的处理,使开发者能够轻松地提取数据,操作DOM,以及执行CSS和...
本教程将深入探讨如何使用Jsoup有效地从网页中提取信息,并最终将其转化为JSON格式,为数据分析或应用程序接口(API)提供便利。 ### 1. Jsoup简介 Jsoup是由Jesse Wilson创建的一个开源项目,它的核心功能是解析...
**jsoup网页爬虫小案例** 在这个案例中,我们将探讨如何使用Java的Jsoup库来实现...通过学习和实践这个"jsoup网页爬虫小案例",你将能够掌握如何利用Jsoup创建自己的爬虫项目,为日后的数据挖掘和分析打下坚实的基础。
**jsoup1.8.1抓取爬虫工具** jsoup是Java领域中一款非常流行的HTML解析库,它主要用于处理实际世界中的HTML,提供了一种干净、简单的API来提取和...通过深入学习和实践,你可以利用jsoup实现各种复杂的网页抓取任务。
**Android Jsoup网页爬虫案例** Jsoup是一个Java库,设计用于处理真实世界的HTML,它提供了非常方便的API,用于提取和操作数据,使用DOM、CSS以及类似于jQuery的方法。在Android开发中,我们有时需要从网页上抓取...
在IT领域,网络爬虫是获取网页...总的来说,HttpClient和Jsoup是Java开发者进行网页抓取和数据提取的得力助手。通过熟悉这两个库的使用,可以轻松地构建出强大的网络爬虫系统,从而高效地获取和分析互联网上的信息。
请注意,进行网页抓取时需遵守网站的robots.txt文件规定以及相关的网络使用法规,避免侵犯他人的版权和隐私。同时,频繁的抓取可能会对目标服务器造成压力,因此在实际应用中应考虑合理安排抓取频率和并发控制。
在IT领域,网站数据抓取是一项重要的技能,用于获取网页上的结构化信息,例如新闻文章、产品价格或用户评论。本项目重点介绍了如何利用htmlunit2.8和jsoup1.7这两个强大的库来实现这一目标。下面我们将深入探讨这两...
在网页爬虫领域,jsoup尤其适用于抓取和分析结构化的HTML内容。 在进行分页爬取网页时,通常涉及到以下几个关键知识点: 1. **URL构造与导航**:首先,我们需要了解如何构建正确的URL来获取不同页面的数据。分页...
在进行网页抓取时,务必遵守网站的robots.txt协议,尊重版权,不滥用服务,避免对目标网站造成过大压力。同时,许多网站需要用户授权才能访问,确保你的爬虫行为符合法律法规。 总结,jsoup提供了一种高效、便捷的...
1. **数据抓取**:Jsoup可以轻松抓取网页上的结构化数据,如商品价格、评论等,用于数据分析或构建应用。 2. **网站验证**:在自动化测试中,Jsoup可以帮助验证HTML元素是否按预期显示或交互。 3. **内容过滤**:...
通过上述方法,结合Jsoup和HttpClient,开发者可以构建出一个能够抓取动态网页内容的爬虫程序。这不仅适用于商品价格的抓取,也适用于其他需要抓取动态数据的场景。但需要注意的是,爬取数据时应遵守网站的robots....
- 利用Jsoup进行网页抓取,可以实现新闻标题的收集、商品信息的获取、评论内容的抓取等多种任务。 - 学习这个项目,你可以了解到如何从网页中抓取特定数据,如链接、标题、内容等,并将这些数据保存到文件或数据库...