html 抓取网页中内容

使用的解析第三方  框架
compile 'org.jsoup:jsoup:1.9.2'

原理 通过匹配
网页中的标签、类、进行有规律的解析。
找到需要抓取内容的共性,比如说类,样式,标签。

url:http://www.qiushibaike.com/ 
使用网络加载框架为retrofit  

 String value = response.body();
//                Log.i("TAG", "onResponse: response.body---------" + value);
//                text.setText(value);
                //1	.通过Jsoup解析成Doucment
                Document document = Jsoup.parse(value);
                //2.	从doc中拿到class="article block untagged mb15" class中有空格后面是继承关系
                Elements elementsByClass = document.getElementsByClass("article");
                if (isClear) {
                    data.clear();
                }
                //3.	取出每个元素分装成Bean
                for (Element ele : elementsByClass) {
                    data.add(new JokeBean(ele));
                }

public JokeBean(Element e) {
//   获取用户头像  昵称
        userImage = e.getElementsByClass("author").get(0).select("img").attr("src");
        userName = e.getElementsByClass("author").get(0).select("img").attr("alt");
        //链接地址
        href = e.getElementsByClass("contentHerf").get(0).select("a").attr("href");
        //  获取内容 图片e.getElementsByClass("content)找到的是content的集合 一个页面只有一个 所以后面取第0个
        this.content = ((Element) e.getElementsByClass("content").get(0)).select("span").text();
//        Log.i("TAG", "JokeBean: contents---------" + contents + ":::name:"
//                + userNames + ":::::image:" + userImages + ":::hrefs:" + hrefs);
        Elements imgs = e.getElementsByClass("thumb");
        if ((imgs != null) && (imgs.size() > 0)) {  //有些没有图片  有些有需要判断一下
            Elements es = ((Element) imgs.get(0)).select("img");
            if ((es != null) && (es.size() > 0)) {
                this.image = ((Element) es.get(0)).attr("src");
                Log.i("TAG", "JokeBean: image---------" + image);
                this.type = 1;
            }
        }


    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值