每一個內(nèi)容豐富的app背后都有一個龐大的數(shù)據(jù)庫作為支撐
那是不是意味著沒有強(qiáng)大團(tuán)隊的的我們就與開發(fā)?
內(nèi)容豐富的app無緣了呢?
并不是沃呢,別忘了我們還有取之不盡用之不絕的資源寶庫--互聯(lián)網(wǎng)?
我們可以使用爬蟲為我們的app提供內(nèi)容支撐?
提到爬蟲汉操,就不得不提專為java打造的爬蟲利器--jsoup了?
看完jsouputil泪幌,包你學(xué)會最基本java爬蟲技巧块蚌,不會你打我
爬蟲步驟:
一、構(gòu)造Javabean? ?
可以說每一個recyclerview list 的child 都是一個Javabean類型的數(shù)據(jù)封裝集?
我們先建立一個叫做TianWen(天文)的javabean?
public TianWen{? //既然是爬HTMl網(wǎng)頁秸脱,那么我們爬到的數(shù)據(jù)一般都是String型?
private String title;? ?
private String imgUrl;?
private String content;? ?
private String link;?
//public setter getter方法,一定要是public的? ?
二堕绩、分析網(wǎng)頁?
以 http://www.astron.ac.cn/list-2-1.htm 為例,光標(biāo)移動到第一篇文章的標(biāo)題? “宇宙團(tuán)狀物質(zhì)以三分之一光速的速度被吸入黑洞中”? 處邑时,?
右鍵鼠標(biāo)奴紧,點擊檢查?
然后就可以看到整個document tree 了?
這個網(wǎng)頁的結(jié)構(gòu)可是說是非常簡單明了,document tree 的結(jié)構(gòu)一目了然? ?
我們要爬的就是所有 li 標(biāo)簽的標(biāo)題text晶丘,圖片src黍氮,內(nèi)容p和跳轉(zhuǎn)鏈接href?
三、依據(jù)document tree的結(jié)構(gòu)一一爬取我們想要的文本text浅浮,圖片鏈接src和跳轉(zhuǎn)鏈接href(title,img,content,link)? ? ? ??
private static String TianZhiWenHead="http://www.astron.ac.cn/";?
public List<TianWen>getTianWen(String s){//s為網(wǎng)頁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 標(biāo)簽下所有的 li 標(biāo)簽沫浆,注意用.children的時候,?
要注意辨別是不是所有的child都是你想要爬的內(nèi)容脑题,容易空指針?
? ? {?
? ? ? ? ? ? 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?
? ? }?
四件缸、綁定數(shù)據(jù)和recyclerview?
有了dataList,再需要一個適配器adapter,就可以把dataList和recyclerview綁定到一起?
關(guān)于recyclerview的baseAdapter,github上有很多叔遂,這里推薦兩個?
五他炊、本項目截圖?
項目地址歡迎star