Jsoup,(安卓)强大的爬虫解析工具!

张士超 2018-08-21

模块 request string void demo html list arraylist

介绍

  • Jsoup是一个用来处理html文本的java库。它提供了非常方便的API,可以通过dom,css或者类似jquery的方法来提取和操作数据。 嗯,所以他到底是干嘛的呢? 当我们访问一个网站拿到它的html代码的时候,往往我们所需要的一些数据就已经包含在html里,Jsoup就是帮我们把这些我们想要的数据提取出来。还是不够清晰明了?没关系,我们一起来看一个demo。

demo

  • 以解析本人首页为例https://www.jianshu.com/u/413ca7e5e66c,首先是拿到首页的html页面,并字符串的格式返回,这里使用okhttp框架,各位看官老爷也可以使用其他框架,只要能拿到html页面即可。
        new Thread(new Runnable() {
            @Override
            public void run() {
                OkHttpClient okHttpClient = new OkHttpClient();
                Request request = new Request.Builder().url(URL).build();
                try {
                    Response response=okHttpClient.newCall(request).execute();
                    String htmlData=response.body().string();
                    resolve(htmlData);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
  • 返回的html字符串如下


    返回的html
  • 然后利用Jsoup对得到的字符串进行解析,返回浏览器,按下F12,我们可以看到页面的html代码,找到对应的文章模块的html,在某个div下的id为list-container的ul、li列表:


    文章模块的html
  • 单看每一个li,可以看出文章的具体内容,这里只解析文章的标题,它在li里的class为title的a标签里:


    需要解析的标题的位置
  • 根据Jsoup对得到的html进行解析:、

    private void resolve(String htmlData) {
        Document document = Jsoup.parse(htmlData);
        Elements elements = document.select("div#list-container ul li");
        List<BlogModel> list=new ArrayList<>();
        for(Element element:elements){
            BlogModel blogModel = new BlogModel();
            blogModel.setTitle(element.select("a.title").first().text());
            list.add(blogModel);
        }
        for(BlogModel blogModel:list){
            Log.e("info",blogModel.getTitle());
        }

    }
  • 下面是得到的数据日志:
    解析结果

    -附jsoup下载地址。
登录 后评论
下一篇
云攻略小攻
1505人浏览
2019-10-11
相关推荐
jsoup (网页获取与解析)
1148人浏览
2015-01-15 16:49:00
数据挖掘之网络爬虫 - 基础
1240人浏览
2018-10-21 20:42:42
网络爬虫(1)
1613人浏览
2016-04-28 17:39:29
Android技术周报_W9
837人浏览
2017-10-25 10:35:54
网络爬虫(1)
394人浏览
2015-10-03 00:22:00
网络爬虫(1)
521人浏览
2017-11-15 17:55:00
宽度优先遍历网络爬虫
493人浏览
2017-12-03 13:22:00
Java爬虫——微博热搜
1240人浏览
2018-07-17 20:40:00
0
0
0
672