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

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

1、简介

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

​ 在爬虫的时候,当咱们用HttpClient之类的框架,获取到网页源码以后,须要从网页源码中取出咱们想要的内容,就能够使用jsoup这类HTML解析器了。能够很是轻松的实现。html

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

2、功能

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

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

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

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

3、使用

一、解析HTML

被解析的HTML能够是一个HTML的字符串,能够是一个URL,能够是一个文件。dom

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

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

从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();

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

相关文章
相关标签/搜索