`

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解析html网页,包含jsoup.jar \ api.chm \ 代码

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

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

    Jsoup 解析网页实例

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

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

    通过使用jsoup库,获取网页的内容,解析修改网页,并且能够显示出修改的结果。

    Jsoup解析网页工具类

    jsoup.jar用于java网页解析的工具类,版本最新,小巧并且强大

    Jsoup解析网址与浏览器查看内容不一致

    开发过程中,用Jsoup解析糯米团购网站页面的时候,发现取得的页面和浏览器查看到的页面不一样,而是手机页面。 经过跟踪代码执行,发现content取得的内容和用浏览器直接访问的内容不一样。 经过查询资料,发现是...

    Java爬虫入门——使用Jsoup解析HTML页面.zip

    请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则...

    JAVA爬虫Jsoup -Mybatis-Plusaricle-crawling-master.zip

    使用 HttpUrlConnection 类发送 HTTP 请求,接着使用 Jsoup 对响应的 HTML 页面进行解析,获取我们想要的数据。最后,我们将获取的数据存储到数据库中,这里使用了 Mybatis-Plus 提供的 insert 方法。

    jsoup解析网页

    该资源包含了一个利用jsoup实现的网页解析,读取搜狐新闻上自己想要的数据,简单易懂。

    使用JSoup实现新闻网页正文抽取

    本程序用用解析工具JSoup,编程实现了新闻网页正文信息抽取,适用于新浪163qq等新闻网页信息抽取。开发工具为Eclipse,将工程导入到Eclipse后,直接运行NewsDown.java类。

    jsoup根据url解析html

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

    Java开源的xpath解析器Jsoupxpath.zip

    JsoupXpath 是一款纯Java开发的使用xpath解析html的解析器,xpath语法分析与执行完全独立,html的DOM树生成借助Jsoup,故命名为JsoupXpath.为了在java里也享受xpath的强大与方便但又苦于找不到一款足够强大的xpath...

    Jsoup 解析JSP

    jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。 但是他不支持JSP页面,例如不支持: 1、; ...

    使用HttpClient 和 jsoup 下载 Google logo

    Google的logo,感觉设计的很好,最近看了java的jsoup(html 解析器)把Google的logo全部下载下来,另外,在Google logos页面发现都是英文的,通过利用Google翻译api对logo说明进行翻译,最终把图片信息以及翻译结果...

    jsoup 1.9.2 -java的网页解析处理

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

    jsoup api 文档和教程文档

    jsoup是java编写的html解析器,用于向web服务器发送请求返回的html页面,此文件包括jsoup的api文档和三份jsoup的教程文档。

    Java-Jsoup-图片爬虫

    这个是用java写的可执行文件,因为一个IP如果爬取次数过多过于频繁是会被封的。...这里是针对于有兴趣研究爬虫的初学者们做的一个,跳过了URL直接面向页面html代码进行代码解析的,然后将图片下载下来的工具。

    jsoup-1.12.1.jar

    jsoup是android和java用jsoup解析html文档必备的jar包!java抓取网页模块JSoup,Jsoup-jar包.

    jsoup-1.8.1.jar

    jsoup 网页解析 根据url获取网页内容,分析网页内容,java爬虫

    Java使用HtmlParser实现简单的网络爬虫

    Java使用HtmlParser抓取网页数据并解析

Global site tag (gtag.js) - Google Analytics