利用Jsoup解析HTML

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

  最近又要做html内容抽取,这次打算尝试一下除了用正则表达式以外的其他方式。自然第一个想到的就是HtmlParser,结果找到了以后发现最近的更新还是在06年,汗!这个时候很意外的发现了Jsoup,试用了一下感觉相当清爽,推荐一下。

    如果你很有兴趣,直接去官方网站看下说明文档,地址是http://jsoup.org/cookbook/。我这里给个小例子,目的是从下文中抽取出标题,大家可以看一下他的类jQuery语法。

  1. <div class="artHead">  
  2.   <div>  
  3.   
  4.     <span class="artType01" style="margin-right: 5px;"><a href="javascript:void(0)">原创</a></span>  
  5.   
  6.   <h3 class="artTitle"><a href="/2431658/483361">JAVA程序内存溢出问题的分析</a>  
  7.   
  8.   <a href="http://blog.51cto.com/artcommend" target="_blank"><img src="http://blog.51cto.com/image/skin/34/indextj.gif" width="15" height="15" /></a>  
  9.   
  10.   
  11.   </h3>  
  12.   </div>  

 

    这个内容是从我博客首页上摘取的,所以直接打开这个页面进行抽取,测试代码如下:

  1. package jsoup; 
  2.  
  3. import java.io.IOException; 
  4. import org.jsoup.Jsoup; 
  5. import org.jsoup.nodes.Document; 
  6. import org.jsoup.select.Elements; 
  7.  
  8. public class ParseTest { 
  9.  
  10.     public static void main(String[] args) { 
  11.         try { 
  12.             Document doc = Jsoup.connect("http://passover.blog.51cto.com/").get(); 
  13.             System.out.println(doc.title()); 
  14.             Elements eles = doc.select("div.artHead"); 
  15.             System.out.println(eles.first().select("h3[class=artTitle]")); 
  16.         } catch (IOException e) { 
  17.             e.printStackTrace(); 
  18.         } 
  19.     } 
  20.  

 

    是不是特别简单?!如果网页结构化比较好的话,这么抽取真的非常方便,我试了下,效率也很不错。推荐给有相关需求的朋友,网页解析又多了一个选择,:-)



本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/484673,如需转载请自行联系原作者

目录
打赏
0
0
0
0
69
分享
相关文章
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
在Python网页抓取领域,BeautifulSoup和Scrapy是两款备受推崇的工具。BeautifulSoup易于上手、灵活性高,适合初学者和简单任务;Scrapy则是一个高效的爬虫框架,内置请求调度、数据存储等功能,适合大规模数据抓取和复杂逻辑处理。两者结合使用可以发挥各自优势,例如用Scrapy进行请求调度,用BeautifulSoup解析HTML。示例代码展示了如何在Scrapy中设置代理IP、User-Agent和Cookies,并使用BeautifulSoup解析响应内容。选择工具应根据项目需求,简单任务选BeautifulSoup,复杂任务选Scrapy。
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
100 7
如何解析一个 HTML 文本
【10月更文挑战第23天】在实际应用中,根据具体的需求和场景,我们可以灵活选择解析方法,并结合其他相关技术来实现高效、准确的 HTML 解析。随着网页技术的不断发展,解析 HTML 文本的方法也在不断更新和完善,
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
170 1
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
141 2
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等