可能是稀土掘金最好学的jsoup示范教程

每一个内容丰富的app背后都有一个庞大的数据库作为支撑

那是不是意味着没有强大团队的的我们就与开发

内容丰富的app无缘了呢

并不是,别忘了我们还有取之不尽用之不绝的资源宝库--互联网

我们可以使用爬虫为我们的app提供内容支撑

提到爬虫,就不得不提专为java打造的爬虫利器--jsoup了

看完jsouputil,包你学会最基本java爬虫技巧,不会你打我

爬虫步骤:

一、构造Javabean

可以说每一个recyclerview list 的child 都是一个Javabean类型的数据封装集

我们先建立一个叫做TianWen(天文)的javabean

public TianWen{ //既然是爬HTMl网页,那么我们爬到的数据一般都是String型

private String title;

private String imgUrl;

private String content;

private String link;

//public setter getter方法,一定要是public的

二、分析网页

www.astron.ac.cn/list-2-1.ht… 为例,光标移动到第一篇文章的标题 “宇宙团状物质以三分之一光速的速度被吸入黑洞中” 处,

右键鼠标,点击检查

然后就可以看到整个document tree 了

这个网页的结构可是说是非常简单明了,document tree 的结构一目了然

我们要爬的就是所有 li 标签的标题text,图片src,内容p和跳转链接href

三、依据document tree的结构一一爬取我们想要的文本text,图片链接src和跳转链接href(title,img,content,link)

private static String TianZhiWenHead="www.astron.ac.cn/";

public ListgetTianWen(String s){//s为网页url

    List<TianWen>beanList=new ArrayList<>(); 

    Document doc=Jsoup.parse(s); 

    Element e=doc.select("ul.newslist_pic").first(); 

    for (Element ee:e.children())   
复制代码

e.children()就是 ul 标签下所有的 li 标签,注意用.children的时候,

要注意辨别是不是所有的child都是你想要爬的内容,容易空指针

{ 

        TianWen bean=new TianWen(); 

        bean.setTitle(ee.child(0).attr("title"));//setTitle 

        bean.setImgUrl(ee.child(0).child(0).attr("src"));//setImgUrl 

        bean.setContent(ee.child(1).child(1).text());//setContent 

        final String link=TianZhiWenHead+ee.child(0).attr("href");   

        bean.setLink(link);//setLink   

        beanList.add(bean); 

    } 

    return beanList;//这个beanList就是recyclerview需要的dataList 

} 
复制代码

四、绑定数据和recyclerview

有了dataList,再需要一个适配器adapter,就可以把dataList和recyclerview绑定到一起

关于recyclerview的baseAdapter,github上有很多,这里推荐两个

BaseRecyclerViewAdapterHelper

baseAdapter

五、本项目截图

项目地址欢迎star

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值