java中使用jsoup解析html

在爬虫技术中,可以分为两个阶段:

一、获取到目标地址url的html内容

二、解析获取到的html内容并选择想要的片段,比如标题、作者、内容等信息

第一个阶段,我们在java里面可以使用httpclient来实现,通过httpclient可以获取到目标地址的html内容,这我们在之前已经说过很多了,如何从获取到的html内容中摘取自己想要的片段呢?使用到的技术可以有很多种,我们在这里介绍一个,叫做jsoup的东西。

引入jsoup:

<dependency>
	<groupId>org.jsoup</groupId>
	<artifactId>jsoup</artifactId>
	<version>1.10.3</version>
</dependency>

使用jsoup很简单,我们举个例子:

Document document = Jsoup.parse(html);
Elements divTags = document.select("div.text");
int size = divTags.size();
for (int i = 0; i < size; i++) {
	Element element = divTags.get(i);
	System.out.println(element.text());
}

上边简单的几行代码的作用是获取含有text这个css类的div。其中html指的是html字符串,可以是一个完整的html(包含<!DOCTYPE html>,head....即普通的html文档),也可以是html片段,我们可以通过这个html字符串来创建一个org.jsoup.nodes.Document对象,通过这个document对象的select方法,select方法定义如下:

Elements org.jsoup.nodes.Element.select(String cssQuery)

cssQuery可以是任何合法的css选择器,比如我们上边写的div.text。

好了,使用jsoup就是这么简单,希望能够帮到你。下面再来个实例:

java代码:

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;



public class App {
	public static void main(String[] args) throws Exception{
        try {
            String html = FileUtils.readFileToString(new File("D:\\zhao\\b.html"), "utf-8");
            Document document = Jsoup.parse(html);
			Elements divTags = document.select("div.text");
			int size = divTags.size();
			for (int i = 0; i < size; i++) {
				Element element = divTags.get(i);
				System.out.println(element.text());
			}
        } catch (Exception e) {
            e.printStackTrace();
        } 
	}
}

执行结果:

image.png

这里要理解,创建jsoup的document对象的参数是html字符串即可,而你这个HTML字符串可以是从本地文件中读取过来的,也可以上httpclient从网上请求爬取过来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值