Android 获取网页的视频链接
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() {@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url); return true;}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);view.loadUrl("javascript:window.local_obj.showSource('<head>'+" + "document.getElementsByTagName('html')[0].innerHTML+'</head>');");}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl); }});final class InJavaScriptLocalObj{@JavascriptInterfacepublic 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
Android 获取网页的视频链接相关推荐
- node.js用get方式获取网页中的链接
2019独角兽企业重金招聘Python工程师标准>>> get方式获取网页中的链接 var http = require('http');//定义函数 var getAHref = ...
- Python获取抖音视频链接
文章目录 所需软件 Fiddler配置 模拟器配置 抓包 Python提取数据 所需软件 手机模拟器,下面以安卓模拟器(雷电模拟器)为例,下载地址: 官网 Fiddler抓包工具,下载地址: 官网 编 ...
- Python 获取网页内视频或图片
使用BeautifulSoup 和 Requests,来获取网页内的视频和图片. import requests from bs4 import BeautifulSoup# Send request ...
- Android 反编译快手APP,GitHub - wakasann/gksvideourla: Android 客户端解析快手分享链接获取到播放视频链接...
解析快手短视频分享的链接,获取到播放的MP4链接,最后在浏览器中打开MP4链接进行下载 App页面截图: Todo List 了解Rxjava2+Retrofit2+MVP的网络请求封装 添加一个配置 ...
- 如何获取网页付费隐藏链接_如何将SEO变成可衡量的收入来源
SEO专业人员面临的最大挑战之一是衡量您的投资回报率. 如果您无法证明自己的投资回报率,那么您的预算和职位将面临风险. 那些说SEO不用花钱的都已经是过去式,根据我现在的观察,正在做SEO的花费还真不 ...
- android获取网络视频缩略图,Android 获取缩略图,网络视频,或者本地视频
IM软件发送视频文件,需要显示缩略图: import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; imp ...
- android获取网页接口JSON数据
新建一个HtmlService类,添加静态方法:getHtml,大概步骤如下: HttpURLConnection对象打开链接并获取源码,然后再写一个readInputStream函数读取数据写入字 ...
- 利用Fiddler中的FiddlerScript自动保存抖音PC网页版视频链接(相当于一个爬虫)
目标网址: https://www.douyin.com/ 准备工具: 1.配置好的Fiddler 代码配置方法 首先找到Fiddler中的FiddlerScript 找到Go to 选择OnBefo ...
- Android获取网页源代码
工程目录: 清单文件增加访问网络权限,防止Cleartext HTTP traffic to xxx not permitted错误设置CleartextTraffic="true" ...
最新文章
- java format 补足空格_11个简单的Java性能调优技巧
- 报错:failed to get the task for process XXX(解决方案)
- Teams Bot开发系列:Activity和Turn
- Spring Boot 2 尝鲜-动态 Banner
- matplotlib Artist 教程
- TCP/IP笔记 应用层(2)——FTP
- Leetcode每日一题:167.two-sum-ii-input-array-is-sorted(两数之和Ⅱ-输入有序数组)
- GDB+coredump定位段错误
- linux安装opencv
- C语言程序流程图switch,C语言流程控制之switch语句详解
- 全能电子地图下载器——MapTileDownloader
- 《中英文在自然语言处理上的十大差异点》学习总结
- 基于51单片机的智能指纹考勤系统设计-基于单片机的便携式瓦斯检测仪系统设计-基于单片机声光控智能开关控制灯系统设计(论文,仿真,程序,原理图)【资料转发分享】
- CIKM 2022 | HGANDTI: 药物-靶点相互作用预测的异构图注意网络
- 不知道如何录音转文字?分享两个实用方法
- reflets 第零课 课文涉及内容介绍及翻译
- 如何更高效地使用Google搜索
- javascript 判断 flash 插件是否安装
- maven、md5、git学习
- 三相电网的共模与差模
热门文章
- JS字符串截取方法 JS字符串查找指定字符方法 JS字符串替换指定字符方法 JS字符串插入指定位置方法 JS字符串删除指定字符方法
- LABVIEW 虚拟键盘 触摸键盘 中英文输入 支持WIN10 WIN7
- Neutron DHCP-Agent问题分析定位(2)
- win10微软图标点击无反应_steam图标 教你win10系统双击steam图标没反应的解决教程...
- 一个成功的男人如何去追求身边的女人
- python中*args,**args的区别
- conda创建的虚拟环境可以直接复制走放到另外一个电脑上用吗
- 利用AIDA64对电脑进行简单的稳定性测试的技巧分享
- 2022-2028全球与中国企业上云市场现状及未来发展趋势
- KP700 comfort 精致面板与西门子1200CPU进行时钟同步