Android 获取网页的视频链接
来源:互联网 发布:网络机顶盒品牌排行 编辑:程序博客网 时间:2024/04/27 11:44
10.16 青岛 阴
近来,想取某网站的视频做数据源,经别人帮忙爬取了视频链接后发现,视频的连接会在1--2小时后就失效了。经研究发现,每次打开包含视频链接的网页,网页内的视频连接地址都是不一样的,想来是加了些防爬取处理了。想要取视频链接,只要他的网页连接不变,直接解析网页好了,可能你会说,为什么不解析son,原因呢,想这种网站,json都是加密的,用解析器解析出来的也是一堆的源码。
解决方案:
1.先下载jsoup的架包并导入。解释下,jsoup是专门用来解析html数据的,像解析json的Gson似的,具体用法稍后说。
2. 在拿到html的链接后,通过webview获取到html数据。
<pre name="code" class="java"> WebView mWebView=new WebView(this); //允许执行javascript语句 mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); mWebView.loadUrl(videoUrl); mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); view.loadUrl("javascript:window.local_obj.showSource('<head>'+" + "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); } }); final class InJavaScriptLocalObj{ @JavascriptInterface public void showSource(String html) { //html 就是网页的数据 </span> System.out.println("====>html="+html); } }3.获取到网页数据后,在使用jsoup对网页进行解析。你要想解析json那样,分析他的结构,在电脑浏览器F12看他的结构,看需要的链接在那个html的节点下。再通过
Document doc = Jsoup.parse(html); Element element = doc.getElementById("tt-video-video"); //搜索搜索节点的id 获得element String videoUrl = element.attr("src"); // 通过element的 某个属性获得链接这个返回的string就是你所需要的具体连接了。
其实jsoup有个Jsoup.connect()方法,是可以自己获取网页的,但是有些网页通过这种HttpURLConnection打开网页是不会出现视频链接,通过WebView模拟一下浏览器打开方式是有的,再获取到具体网页通过jsoup解析。jsoup还有好多的方法,可以有不同的方式解析html,具体就不一一介绍了。
以上是我的个人理解,如果不对,欢迎留言指正,谢谢。
参考文章:http://blog.csdn.net/hellohaifei/article/details/9331631
1 0
- Android 获取网页的视频链接
- 怎样获取网页视频下载链接
- 如何获取网页中所有的链接
- 获取网页某一类的链接
- 获取网页链接
- Android Webview新认识(获取cookie,所加载网页内的链接的url)
- Android由网页链接启动app,并获取URI参数
- java与android 的视频链接
- Android处理网页的短信链接
- Android 的界面打开网页链接
- 正则表达式获取网页链接
- c#获取远程网页链接
- vc获取网页内链接
- vc获取网页内链接
- 正则表达式获取网页链接
- selenium 获取网页所有链接
- JSoup获取网页中的链接
- Java获取网页链接内容
- startActivityForResult用法详解
- 在字符串中查找一个特定的字符最后一次出现的位置(即最右边那个)
- 【Unity3D 游戏开发之二】高级组件(GUI:LABEL、SCROLLVIEW、TEXTFIELD…等)入门篇
- jsp url 参数加密传送的终极解决方案
- PHP Tokenizer 学习笔记
- Android 获取网页的视频链接
- 【UNITY3D 游戏开发之三】NGUI && HUDText 的练习源码及资源
- c++中的unique_ptr智能指针
- awef
- SPOJ HIGH Highways(生成树计数,Matrix-Tree定理)
- Git warning: LF will be replaced by CRLF in 解决办法
- @RequestMapping 的两种配置和请求方式
- 内存操作
- 【UNITY3D 游戏开发之四】有关实现2D帧序列帧播放相关—Animating Tiledtexture