zoukankan      html  css  js  c++  java
  • (一)问候 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 }

    运行输出:

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

    口号:代码改变世界

  • 相关阅读:
    【转载】使用Jquery操作Cookie对象
    PHP实现双向链表、栈
    Mysql触发器、模糊查找、存储过程、内置函数
    List、Set、Map、数组之间各种转换
    Android -- 压缩与解压文件
    Android -- 动态添加布局
    Android -- Service绑定解绑和aidl
    Android -- 图像处理(信息量超大)
    Android -- 利用Broadcast开启Service
    Android -- Service的开启关闭与生命周期
  • 原文地址:https://www.cnblogs.com/wishwzp/p/7065870.html
Copyright © 2011-2022 走看看