我喜歡看韓劇,藉此動力,對我經常訪問的網站:http://www.hanju.cc/進行了爬蟲。這個網站沒有app,對網站進行
抓包時,沒有什麼可利用的數據,所以只能爬蟲獲取數據。
1.該APP解決對於jsoup獲取到的Document,對JavaScript的var值獲取:
public String getmediaplayerInfo(Document doc){ String link=""; Elements e = doc.getElementsByTag("script"); String[] data = e.get(7).data().toString().split("var"); for(int i=0;i<data.length;i++) { if(data[i].indexOf("vid=")!=-1) { link = data[i].substring(data[i].indexOf("vid='") + 5, data[i].indexOf("';")); Log.i("getNewsItems: link", link); } } return link; }
2.解決OkHttp post請求編碼問題
這裏的“xuan”和“name”,是你要自己提交的值,不清楚可以下載項目查看,包含這個問題的文件
的路徑在:java\com\panpan\hantaimi\network。
private static class UserAgentInterceptor1 implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request originalRequest = chain.request(); Request requestWithUserAgent = originalRequest.newBuilder() .post(RequestBody.create(MediaType.parse("application/x-www-form-urlencoded;charset=gb2312"), "pagesize=100&channeltype="+xuan+"&keyword="+name)) .build(); return chain.proceed(requestWithUserAgent); } }
3.接入了極光推送,想了解更多還是到極光官網查看更多,我這裏已經接好了,你只需改變某些值就可以應用。對極光發送
過來的信息進行處理後顯示。注意觀察我給的代碼和圖片裏的值要對應,你可以在極光的發送通知進行鍵和值的編輯。
然後在android代碼里根據鍵獲取值,注意!鍵一定要對應上,不然就不反應,也不會報錯。
String ss=bundle.getString(JPushInterface.EXTRA_EXTRA); JSONObject jextra=new JSONObject(ss); String type=jextra.getString("type"); String uri=""; if(type.equals("hanju")) { uri = jextra.getString("hanju"); Intent mIntent = new Intent(context,NewshanjuActivity.class); mIntent.putExtra(ConstantUtil.EXTRA_URL, uri); mIntent.putExtra(ConstantUtil.EXTRA_go, "no"); mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP ); context.startActivity(mIntent); } else if(type.equals("daitai")) { uri = jextra.getString("daitai"); String img= jextra.getString("img"); Intent mIntent = new Intent(context, NewsDetailActivity.class); mIntent.putExtra(ConstantUtil.EXTRA_IMG_URL, img); mIntent.putExtra(ConstantUtil.EXTRA_URL, uri); mIntent.putExtra(ConstantUtil.EXTRA_TITLE, bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE)); mIntent.putExtra(ConstantUtil.xuan,"wen"); mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP ); context.startActivity(mIntent); } else if(type.equals("tuku")) { uri = jextra.getString("tuku"); String img= jextra.getString("img"); Intent mIntent = new Intent(context, NewsDetailActivity.class); mIntent.putExtra(ConstantUtil.EXTRA_IMG_URL, img); mIntent.putExtra(ConstantUtil.EXTRA_URL, uri); mIntent.putExtra(ConstantUtil.EXTRA_TITLE, bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE)); mIntent.putExtra(ConstantUtil.xuan,"tu"); mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP ); context.startActivity(mIntent); }
app的展示:
該app僅供學習使用。項目:https://github.com/panyancen/hanjumi,apk:
http://www.panpan55.top/app-debug.apk主要參考項目:
https://github.com/HotBitmapGG/bilibili-android-client
https://github.com/CarGuo/GSYVideoPlayer
非常感謝,各位博主提供的源碼。
如有問題,留個評論啊。