多是稀土掘金最好學的jsoup示範教程

每個內容豐富的app背後都有一個龐大的數據庫做爲支撐java

那是否是意味着沒有強大團隊的的咱們就與開發git

內容豐富的app無緣了呢github

並非,別忘了咱們還有取之不盡用之不絕的資源寶庫--互聯網數據庫

咱們可使用爬蟲爲咱們的app提供內容支撐app

提到爬蟲,就不得不提專爲java打造的爬蟲利器--jsoup了url

看完jsouputil,包你學會最基本java爬蟲技巧,不會你打我spa

爬蟲步驟:3d

1、構造Javabean指針

能夠說每個recyclerview list 的child 都是一個Javabean類型的數據封裝集code

咱們先創建一個叫作TianWen(天文)的javabean

public TianWen{ //既然是爬HTMl網頁,那麼咱們爬到的數據通常都是String型

private String title;

private String imgUrl;

private String content;

private String link;

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

2、分析網頁

www.astron.ac.cn/list-2-1.ht… 爲例,光標移動到第一篇文章的標題 「宇宙團狀物質以三分之一光速的速度被吸入黑洞中」 處,

右鍵鼠標,點擊檢查

而後就能夠看到整個document tree 了

這個網頁的結構但是說是很是簡單明瞭,document tree 的結構一目瞭然

咱們要爬的就是全部 li 標籤的標題text,圖片src,內容p和跳轉連接href

3、依據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 

} 
複製代碼

4、綁定數據和recyclerview

有了dataList,再須要一個適配器adapter,就能夠把dataList和recyclerview綁定到一塊兒

關於recyclerview的baseAdapter,github上有不少,這裏推薦兩個

BaseRecyclerViewAdapterHelper

baseAdapter

5、本項目截圖

項目地址歡迎star

相關文章
相關標籤/搜索