現(xiàn)在大多數(shù)的接口返回的都是json xml 數(shù)據(jù)距帅。但是如果對方是html巡验,你怎么辦加袋?拿webview去套嘛還是說用TextView.setText(Html.fromHtml(“”));
最近閑的無聊辛友,就想著用抓包工具逛逛那些在線電影的網(wǎng)址,想自己寫一個(gè)自己用的電影播放工具率寡。順便研究下投屏技術(shù)迫卢。當(dāng)我抓起包的時(shí)候 我就懵逼了。這怎么解析冶共?如圖:QQ截圖20190624151730.png
純html文本乾蛤,沒玩過啊,這咋搞捅僵?難得想學(xué)習(xí)一波家卖,這么快GG了?那怎么行庙楚,5秒真男人不是我作風(fēng)啊上荡。于是開始各種找解決方案,剛開始問了php的同事馒闷,他們告訴我自己寫正則匹配酪捡。這個(gè)有點(diǎn)麻煩,我不推薦纳账,還有一種就是找個(gè)能解析dom的庫逛薇,然后用里面的方法。
想了一下疏虫,這正則得匹配到啥時(shí)候金刁?匹配完了 遇上標(biāo)簽變化還是得跪啊帅涂。算了,安安心心找解析庫好了尤蛮。然后就有了我們今天的主角 jsoup
好了,有了解析器我還怕個(gè)毛線啊斯议,直接開擼产捞!首先導(dǎo)入 jsoup
compile 'org.jsoup:jsoup:1.12.1'
請求接口拿到數(shù)據(jù)后使用
Document doc = Jsoup.parseBodyFragment(s);
但是然后呢?他解析成什么樣了我TM哪知道昂哂坯临?。那怎么去解析呢恋昼?當(dāng)然debug啦看靠!我們來看下debug下界面。
數(shù)據(jù)解析.png
一層層的把你用得到的數(shù)據(jù)取出來就好啦液肌。具體操作就這么幾步挟炬。所有的方法在 jsoup上查找api,當(dāng)然了每個(gè)接口返回的數(shù)據(jù)格式是不一樣的嗦哆,需要注意它的標(biāo)簽變化谤祖。來一波解析結(jié)果
成果.png
最后奉上最后效果圖,APP有點(diǎn)丑老速,大家見諒粥喜,主要是學(xué)習(xí)一下。
演示.gif