基于gsyvideoplayer的视频播放app,用okhttp3+retrofit2访问网络,Jsoup爬虫,极光推送
我喜欢看韩剧,借此动力,对我经常访问的网站: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
非常感谢,各位博主提供的源码。
如有问题,留个评论啊。