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 获取网页的视频链接相关推荐

  1. node.js用get方式获取网页中的链接

    2019独角兽企业重金招聘Python工程师标准>>> get方式获取网页中的链接 var http = require('http');//定义函数 var getAHref = ...

  2. Python获取抖音视频链接

    文章目录 所需软件 Fiddler配置 模拟器配置 抓包 Python提取数据 所需软件 手机模拟器,下面以安卓模拟器(雷电模拟器)为例,下载地址: 官网 Fiddler抓包工具,下载地址: 官网 编 ...

  3. Python 获取网页内视频或图片

    使用BeautifulSoup 和 Requests,来获取网页内的视频和图片. import requests from bs4 import BeautifulSoup# Send request ...

  4. Android 反编译快手APP,GitHub - wakasann/gksvideourla: Android 客户端解析快手分享链接获取到播放视频链接...

    解析快手短视频分享的链接,获取到播放的MP4链接,最后在浏览器中打开MP4链接进行下载 App页面截图: Todo List 了解Rxjava2+Retrofit2+MVP的网络请求封装 添加一个配置 ...

  5. 如何获取网页付费隐藏链接_如何将SEO变成可衡量的收入来源

    SEO专业人员面临的最大挑战之一是衡量您的投资回报率. 如果您无法证明自己的投资回报率,那么您的预算和职位将面临风险. 那些说SEO不用花钱的都已经是过去式,根据我现在的观察,正在做SEO的花费还真不 ...

  6. android获取网络视频缩略图,Android 获取缩略图,网络视频,或者本地视频

    IM软件发送视频文件,需要显示缩略图: import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; imp ...

  7. android获取网页接口JSON数据

    新建一个HtmlService类,添加静态方法:getHtml,大概步骤如下:  HttpURLConnection对象打开链接并获取源码,然后再写一个readInputStream函数读取数据写入字 ...

  8. 利用Fiddler中的FiddlerScript自动保存抖音PC网页版视频链接(相当于一个爬虫)

    目标网址: https://www.douyin.com/ 准备工具: 1.配置好的Fiddler 代码配置方法 首先找到Fiddler中的FiddlerScript 找到Go to 选择OnBefo ...

  9. Android获取网页源代码

    工程目录: 清单文件增加访问网络权限,防止Cleartext HTTP traffic to xxx not permitted错误设置CleartextTraffic="true" ...

最新文章

  1. java format 补足空格_11个简单的Java性能调优技巧
  2. 报错:failed to get the task for process XXX(解决方案)
  3. Teams Bot开发系列:Activity和Turn
  4. Spring Boot 2 尝鲜-动态 Banner
  5. matplotlib Artist 教程
  6. TCP/IP笔记 应用层(2)——FTP
  7. Leetcode每日一题:167.two-sum-ii-input-array-is-sorted(两数之和Ⅱ-输入有序数组)
  8. GDB+coredump定位段错误
  9. linux安装opencv
  10. C语言程序流程图switch,C语言流程控制之switch语句详解
  11. 全能电子地图下载器——MapTileDownloader
  12. 《中英文在自然语言处理上的十大差异点》学习总结
  13. 基于51单片机的智能指纹考勤系统设计-基于单片机的便携式瓦斯检测仪系统设计-基于单片机声光控智能开关控制灯系统设计(论文,仿真,程序,原理图)【资料转发分享】
  14. CIKM 2022 | HGANDTI: 药物-靶点相互作用预测的异构图注意网络
  15. 不知道如何录音转文字?分享两个实用方法
  16. reflets 第零课 课文涉及内容介绍及翻译
  17. 如何更高效地使用Google搜索
  18. javascript 判断 flash 插件是否安装
  19. maven、md5、git学习
  20. 三相电网的共模与差模

热门文章

  1. JS字符串截取方法 JS字符串查找指定字符方法 JS字符串替换指定字符方法 JS字符串插入指定位置方法 JS字符串删除指定字符方法
  2. LABVIEW 虚拟键盘 触摸键盘 中英文输入 支持WIN10 WIN7
  3. Neutron DHCP-Agent问题分析定位(2)
  4. win10微软图标点击无反应_steam图标 教你win10系统双击steam图标没反应的解决教程...
  5. 一个成功的男人如何去追求身边的女人
  6. python中*args,**args的区别
  7. conda创建的虚拟环境可以直接复制走放到另外一个电脑上用吗
  8. 利用AIDA64对电脑进行简单的稳定性测试的技巧分享
  9. 2022-2028全球与中国企业上云市场现状及未来发展趋势
  10. KP700 comfort 精致面板与西门子1200CPU进行时钟同步