• Jsoup-解析HTML工具(简单爬虫工具)


    Jsoup-解析HTML工具(简单爬虫工具)

    一、简介

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

    ​ 在爬虫的时候,当我们用HttpClient之类的框架,获取到网页源码之后,需要从网页源码中取出我们想要的内容,就可以使用jsoup这类HTML解析器了。可以非常轻松的实现。

    ​ jsoup也支持从某个地址直接去爬取网页源码,目前支持HTTP,HTTPS协议。

    二、功能

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

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

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

    注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。

    三、使用

    1、解析HTML

    被解析的HTML可以是一个HTML的字符串,可以是一个URL,可以是一个文件。

    org.jsoup.Jsoup把输入的HTML转换成一个org.jsoup.nodes.Document对象,然后从Document对象中取出想要的元素。

    org.jsoup.nodes.Document继承了org.jsoup.nodes.Element,Element又继承了org.jsoup.nodes.Node类。里面提供了丰富的方法来获取HTML的元素。

    从url获取HTML解析

    1.Get请求

    Document getDocument = Jsoup.connect("http://www.baidu.com").get();
    

    2.Post请求

    Document postDocument = Jsoup.connect("http://exmple.com")
                    .data("query", "java")
                    .userAgent("Mozilla")
                    .cookie("auth", "token")
                    .timeout(3000)
                    .post();
    

    1.DOM获取元素

    //通过id来获取
    getElementById(String id) 
    //通过标签名字来获取
    getElementsByTag(String tagName)
    //通过类名来获取
    getElementsByClass(String className)
    //通过属性名字来获取
    getElementsByAttribute(String key)
    //通过指定的属性名字,属性值来获取
    getElementsByAttributeValue(String key, String value)
    //获取所有元素
    getAllElements()
    

    2.通过类似于css或jQuery的选择器来查找元素

    Element类的方法:

    public Elements select(String cssQuery)
    

    获取百度搜索按钮value内容

    String val = getDocument.select("#su").val();
    

    或者

    String su = getDocument.body().getElementById("su").val();
    

    还有更多获取元素的方法,建议还是直接看官方文档,毕竟那才是最干活的,我这里只是简单入门。

  • 相关阅读:
    最优贸易 NOIP 2009 提高组 第三题
    Think twice, code once.
    luogu P1378 油滴扩展
    codevs 1002 搭桥
    codevs 1014 装箱问题 2001年NOIP全国联赛普及组
    洛谷P2782 友好城市
    洛谷P1113 杂务
    [HDU1848]Fibonacci again and again
    [POJ2420]A Star not a Tree?
    [SCOI2010]生成字符串
  • 原文地址:https://www.cnblogs.com/mengw/p/11722568.html
Copyright © 2020-2023  润新知