`

Java使用Jsoup简单解析页面

阅读更多

jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

jsoup 的主要功能如下:

1. 从一个 URL,文件或字符串中解析 HTML;

2. 使用 DOM 或 CSS 选择器来查找、取出数据;

3. 可操作 HTML 元素、属性、文本;

 

实战代码:

@Service("htmlParser")
public class HtmlParserImpl implements HtmlParser {

	private static Logger logger = LoggerFactory.getLogger(HtmlParserImpl.class);

	/**
	 * 解析人行征信报告页面
	 * @param html
	 * @return
	 */
	public List<DetailVo> parse(String html) {
		if (StringUtils.isBlank(html)){
			return null;
		}

		Document document = Jsoup.parse(html);

		Elements loanElements = document.select("table span.h1 strong");
		for (Element element : loanElements){
			if (element.text().contains("购房贷款")){
				...
				setLoanDetailVoByElement(element, detailVo, houseLoanDetailVo);
			}else if (element.text().contains("其他贷款")){
				...
				setLoanDetailVoByElement(element, detailVo, loanDetailVo);
			}
		}
		return list;
	}

	/**
	 * 设值查询记录(包括机构、个人)
	 * @param tableEle
	 * @param agencyDetailVo
	 */
	private void setQueryRecordDetailVoByTableElement(Element tableEle, DetailVo agencyDetailVo) {
		Elements trList = tableEle.select("tr");
		if (trList != null && trList.size() > 0){
			for (Element trEle : trList){
				Elements trChildren = trEle.children();
				if (trChildren != null && trChildren.size() == 4){
					agencyDetailVo.getList().add(Lists.newArrayList(
							trChildren.get(0).text(), trChildren.get(1).text(),
							trChildren.get(2).text(), trChildren.get(3).text()));
				}
			}
		}
	}

	/**
	 * 设值贷款部分(包括了信用卡、购房贷款、其他贷款、为他人担保)
	 * @param element
	 * @param detailVo
	 * @param creditCardDetailVo
	 */
	private void setLoanDetailVoByElement(Element element, DetailVo detailVo, DetailVo creditCardDetailVo) {
		Element olNode = element.parent().nextElementSibling();
		Elements olNodes = olNode.children();

		for (Element ele : olNodes){
			if (ele.tagName().indexOf("span") > -1){
				detailVo = new DetailVo();
				detailVo.setTitle(ele.child(0).text());
			}else if (ele.tagName().indexOf("li") > -1){
				if (detailVo != null){
					detailVo.getList().add(ele.text());
				}
				if (ele.nextElementSibling() == null ||!"li".equals(ele.nextElementSibling().tagName())){
					creditCardDetailVo.getList().add(detailVo);
				}
			}
		}
	}
}

 

教程重点推荐:

http://www.cnblogs.com/jycboy/p/jsoupdoc.html

官网:

https://jsoup.org/

分享到:
评论

相关推荐

    使用Jsoup解析html网页

    下面是一个简单的示例,展示了如何使用Jsoup连接到一个网页,选择特定元素并提取其内容: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; public class ...

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

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

    Java使用Jsoup抓取网页关键信息并入库

    这个"小demo"可能是简单的Java应用,包含一个主类,通过Jsoup抓取网页信息后,使用PreparedStatement将数据存入MySQL。文件名"Jsoup获取网页内容实例"暗示了示例代码可能包含如何使用Jsoup进行网页解析的片段。 ...

    Android使用Jsoup技术解析HTML

    Jsoup提供了一种简单、安全且有效的方法来解析和操作HTML文档,使得开发者能够轻松地从网页中提取结构化数据。 ### 1. Jsoup的基本概念 Jsoup的核心功能是解析HTML文档,并将其转化为一个DOM(Document Object ...

    使用Jsoup库解析HTML、XML或URL链接中的DOM节点

    接下来,我们将探讨如何使用Jsoup解析HTML内容: 1. **连接URL并解析** 使用Jsoup的`connect()`方法,可以建立到指定URL的连接,并获取HTML内容。然后调用`get()`方法,解析返回的HTML字符串。 ```java ...

    spring boot+java +jsoup+ 爬虫

    在图片爬取过程中,首先,我们需要设置一个起始URL,然后使用Jsoup解析该页面的HTML内容。通过选择器如`img[src]`,可以找到所有的图片链接。接下来,可以使用Java的HttpURLConnection或HttpClient库,向每个图片URL...

    使用java-jsoup解析html页面内容,爬取想要的信息(如号段)

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。 jsoup 可以从包括字符串、URL 地址...

    使用jsoup获取网页内容并修改

    总结来说,Jsoup是一个强大的工具,它使得在Java和Android应用中解析和操作HTML变得简单易行。通过学习和熟练掌握Jsoup,你可以高效地实现网页内容的获取与修改,为你的应用增添更多的功能和价值。同时,要注意在...

    java爬虫jsoup包

    总的来说,Jsoup是Java开发者进行网页解析和数据提取的利器,其简洁的API和强大的功能使其在爬虫开发中受到广泛欢迎。通过熟练掌握Jsoup,你可以构建出高效、稳定的Web爬虫,实现对HTML内容的深度挖掘和分析。

    Jsoup库文件;Jsoup解析Java包

    此外,Jsoup还提供了链接处理能力,可以解析页面上的链接,包括相对链接和绝对链接,这对于网页爬虫和数据抓取来说非常有用。 XML解析方面,虽然Jsoup主要设计用于HTML处理,但它也具备解析XML文档的能力。XML与...

    java+jsoup抓取网页数据

    以下是关于如何使用Java+Jsoup抓取网页数据的详细讲解。 首先,你需要了解HTML的基础结构,因为Jsoup的工作原理是解析HTML文档并提供类似于DOM的API来操作这些文档。HTML是由标签组成的树形结构,每个标签都有属性...

    Java 爬虫jsoup简单的demo

    本篇文章将深入探讨如何使用Jsoup进行简单的网页抓取,并将抓取的数据写入Excel的多个工作表。 首先,我们要了解Jsoup的基本用法。Jsoup的核心功能在于解析HTML文档,通过其提供的选择器语法,我们可以像操作DOM...

    JAVA jSOUP解析html

    `Test01.java`负责使用jSoup解析HTML并提取所需信息,而`UrlUtils.java`则辅助处理URL相关的操作,如生成合法请求的URL,或对获取的链接进行编码和解码。 总结,jSoup是Java中解析和操作HTML的强大工具,其易于使用...

    java html解析 工具jsoup和一个简单例子

    以下是一个简单的Jsoup使用示例,演示如何获取和打印网页的标题: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupExample { public static void main(String[] args) ...

    Jsoup 解析网页实例

    这个只是一个java源文件,用于学习Jsoup

    jsoupAPI解析html

    总结来说,jsoup是一个强大且易用的Java库,它的API设计简洁,支持HTML解析、选择、操作等功能,是处理HTML数据的理想工具。无论是网页抓取、数据提取还是内容修改,jsoup都能提供高效且安全的解决方案。

    android使用jsoup 解析html文件

    - `jsoup`并不支持完整的DOM解析,对于复杂的DOM操作,可能需要考虑其他库,如`Jsoup`与`jsoup-dom`结合使用。 总结,`jsoup`为Android开发者提供了一个强大且易于使用的工具,可以方便地解析和操作HTML内容。通过...

    jsoup java解析html

    **JSoup:Java的HTML解析库** JSoup是一款强大的Java库,专为处理现实世界中的HTML而设计。它提供了一种简洁的API,用于提取和操作数据,使用DOM,CSS,以及jQuery式的语法。在现代Web开发中,尤其是在网页抓取、...

    在android中使用jsoup解析页面链接

    Jsoup是一个Java库,它提供了丰富的API来处理HTML文档,使得在Android中解析网页链接变得更加简单。 首先,让我们了解Jsoup的基本用法。Jsoup通过连接到指定的URL并下载HTML内容,然后解析这个内容以创建一个可操作...

    jsoup Java HTML解析器

    以下是一个简单的jsoup使用示例,展示如何解析HTML并提取页面标题: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupExample { public static void main(String[] args) ...

Global site tag (gtag.js) - Google Analytics