Jsoup解析html

我们的老规矩。。。遇到新知识,先导依赖

compile 'org.jsoup:jsoup:1.9.2'



Jsoup支持对html的解析,我们随便找个网站,查看他的源码

Jsoup解析html



这个时候可以开始解析


我们现在Activity中,创建一个子线程(Jsoup请求的是网络数据,需要联网权限,同时是耗时操作)


   new Thread(){
            @Override
            public void run() {
                super.run();
                try {

这里是从一个URL加载一个Document

connect(String url) 方法创建一个新的 Connection, 和 get() 取得和解析一个HTML文件
                    Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();

可以用select去选择我们要解析那个节点下的内容
                    Elements e1 = doc.select("div.top-bar");

                    String attr = e1.select("a").attr("title");

元素数据
attr(String key)获取属性attr(String key, String value)设置属性
attributes()获取所有属性
id(), className() and classNames()
text()获取文本内容text(String value) 设置文本内容
html()获取元素内HTMLhtml(String value)设置元素内的HTML内容
outerHtml()获取元素外HTML内容
data()获取数据内容(例如:script和style标签)
tag() and tagName()



如果节点下是很多的内容,可以用循环全部解析出来
                    Elements e2 = doc.select("div.detail");
                    for (int i =0;i<5;i++){
                        String href = e1.select("a").get(i).attr("href");
                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();