(一)问候 Jsoup

第一节: Jsoup 简介

Jsoup简介

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

我们在爬虫采集网页领域 主要作用是 用HttpClient获取到网页后 具体的网页提取需要的信息的时候 ,就用到Jsoup,Jsoup可以使用强大的类似Jquery,css选择器,来获取需要的数据;

Jsoup官方地址:https://jsoup.org/

Jsoup最新下载:https://jsoup.org/download

Jsoup文档:https://jsoup.org/cookbook/introduction/parsing-a-document

最新版Maven地址:

1 <dependency>
2     <groupId>org.jsoup</groupId>
3     <artifactId>jsoup</artifactId>
4     <version>1.10.2</version>
5 </dependency>


第二节: Jsoup HelloWorld 实现

 

Jsoup HelloWorld实现

我们用Jsoup来提取下http://www.cnblogs.com/ 博客园的 网页title 标题  和 口号;

 这里我们要用到前面讲的HttpClient来获取网页内容:

 pom.xml:

 1 <!-- 添加HttpCient支持 -->
 2 <dependency>
 3     <groupId>org.apache.httpcomponents</groupId>
 4     <artifactId>httpclient</artifactId>
 5     <version>4.5.2</version>
 6 </dependency>
 7  
 8 <!-- 添加Jsoup支持 -->
 9 <dependency>
10     <groupId>org.jsoup</groupId>
11     <artifactId>jsoup</artifactId>
12     <version>1.10.2</version>
13 </dependency>

实例代码:

 1 package com.javaxk.jsoup;
 2 
 3 import org.apache.http.HttpEntity;
 4 import org.apache.http.client.methods.CloseableHttpResponse;
 5 import org.apache.http.client.methods.HttpGet;
 6 import org.apache.http.impl.client.CloseableHttpClient;
 7 import org.apache.http.impl.client.HttpClients;
 8 import org.apache.http.util.EntityUtils;
 9 import org.jsoup.Jsoup;
10 import org.jsoup.nodes.Document;
11 import org.jsoup.nodes.Element;
12 import org.jsoup.select.Elements;
13 
14 public class Demo01 {
15     
16     public static void main(String[] args) throws Exception{
17         CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httpclient实例
18         HttpGet httpget = new HttpGet("http://www.cnblogs.com/"); // 创建httpget实例
19           
20         CloseableHttpResponse response = httpclient.execute(httpget); // 执行get请求
21         HttpEntity entity=response.getEntity(); // 获取返回实体
22         String webContent=EntityUtils.toString(entity, "utf-8");
23         // System.out.println("网页内容:"+webContent); // 指定编码打印网页内容
24         response.close(); // 关闭流和释放系统资源
25          
26         Document doc=Jsoup.parse(webContent);    // 解析网页 得到文档对象
27         Elements elements=doc.getElementsByTag("title");// 获取tag是title的所有DOM元素
28         Element element=elements.get(0);// 获取第1个元素
29         String title=element.text(); // 返回元素的文本
30         System.out.println("网页标题是:"+title);
31          
32         Element element2=doc.getElementById("site_nav_top");// 获取id=site_nav_top的DOM元素
33         String navTop=element2.text();// 返回元素的文本
34         System.out.println("口号:"+navTop);
35     }
36 
37 }

运行输出:

网页标题是:博客园 - 开发者的网上家园

口号:代码改变世界

原文地址:https://www.cnblogs.com/wishwzp/p/7065870.html