当前位置: 首页 > news >正文

建筑设计网站素材seo优化实训总结

建筑设计网站素材,seo优化实训总结,信息咨询公司注册要求,全运会为什么建设网站获取网站视频真实链接 直接上工具类 直接调用即可,这个工具类会返回加载的网页中所有的链接,至于对链接怎么处理就是你们自己的事了, 亲测至今我所遇到的所有视频,它都可以捕获到其链接 import android.app.Activity; import an…

获取网站视频真实链接

直接上工具类

直接调用即可,这个工具类会返回加载的网页中所有的链接,至于对链接怎么处理就是你们自己的事了, 亲测至今我所遇到的所有视频,它都可以捕获到其链接


import android.app.Activity;
import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;import java.util.Timer;
import java.util.TimerTask;/*** Created by Administrator on 2018/3/22.*/public class ParseWebUrlHelper {private static ParseWebUrlHelper parseWebUrlHelper;private String webUrl;private Activity mAct;private WebView webView;private int timeOut = 20 * 1000;private OnParseWebUrlListener onParseListener;public static ParseWebUrlHelper getInstance() {if (parseWebUrlHelper == null) parseWebUrlHelper = new ParseWebUrlHelper();return parseWebUrlHelper;}public ParseWebUrlHelper init(Activity act, String url) {this.mAct = act;this.webUrl = url;ViewGroup mainView = (ViewGroup) mAct.findViewById(android.R.id.content);this.webView = new WebView(mAct);this.webView.setLayoutParams(new LinearLayout.LayoutParams(1, 1));mainView.addView(this.webView);initWebSettings();return this;}private void initWebSettings() {WebView mWebView = this.webView;mWebView.clearFocus();WebSettings mWebSettings = mWebView.getSettings();mWebSettings.setJavaScriptEnabled(true);mWebSettings.setDefaultTextEncodingName("utf-8");mWebSettings.setCacheMode(WebSettings.LOAD_DEFAULT);mWebSettings.setPluginState(WebSettings.PluginState.ON);mWebSettings.setDisplayZoomControls(false);mWebSettings.setUseWideViewPort(true);mWebSettings.setAllowFileAccess(true);mWebSettings.setAllowContentAccess(true);mWebSettings.setSupportZoom(true);mWebSettings.setAllowContentAccess(true);mWebSettings.setLoadWithOverviewMode(true);mWebSettings.setBuiltInZoomControls(true);// 隐藏缩放按钮mWebSettings.setUseWideViewPort(true);// 可任意比例缩放mWebSettings.setLoadWithOverviewMode(true);// setUseWideViewPort方法设置webview推荐使用的窗口。setLoadWithOverviewMode方法是设置webview加载的页面的模式。mWebSettings.setSavePassword(true);mWebSettings.setSaveFormData(true);// 保存表单数据mWebSettings.setJavaScriptEnabled(true);mWebSettings.setTextZoom(100);mWebSettings.setDomStorageEnabled(true);mWebSettings.setSupportMultipleWindows(true);// 新加//我就是没有这一行,死活不出来。MD,硬是没有人写这一句!if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {mWebSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {mWebSettings.setMediaPlaybackRequiresUserGesture(true);}if (Build.VERSION.SDK_INT >= 16) {mWebSettings.setAllowFileAccessFromFileURLs(true);mWebSettings.setAllowUniversalAccessFromFileURLs(true);}mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);mWebSettings.setLoadsImagesAutomatically(true);mWebSettings.setAppCacheEnabled(true);mWebSettings.setAppCachePath(mAct.getCacheDir().getAbsolutePath());mWebSettings.setDatabaseEnabled(true);mWebSettings.setGeolocationDatabasePath(mAct.getDir("database", 0).getPath());mWebSettings.setGeolocationEnabled(true);CookieManager instance = CookieManager.getInstance();if (Build.VERSION.SDK_INT < 21) {CookieSyncManager.createInstance(mAct.getApplicationContext());}instance.setAcceptCookie(true);if (Build.VERSION.SDK_INT >= 21) {instance.setAcceptThirdPartyCookies(mWebView, true);}mWebView.setWebViewClient(new MyWebViewClient());enabledCookie(webView);//启用cookie}public ParseWebUrlHelper setLoadUrl(String url){this.webUrl=url;return this;}public ParseWebUrlHelper startParse(){webView.loadUrl(this.webUrl);return this;}/*启用cookie*/private void enabledCookie(WebView web) {CookieManager instance = CookieManager.getInstance();if (Build.VERSION.SDK_INT < 21) {CookieSyncManager.createInstance(mAct);}instance.setAcceptCookie(true);if (Build.VERSION.SDK_INT >= 21) {instance.setAcceptThirdPartyCookies(web, true);}}public ParseWebUrlHelper setOnParseListener(OnParseWebUrlListener onParseListener) {this.onParseListener = onParseListener;return this;}private class MyWebViewClient extends WebViewClient {@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overridepublic boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {if(request.getUrl().toString().startsWith("intent")||request.getUrl().toString().startsWith("youku")){return true;}else{return super.shouldOverrideUrlLoading(view, request);}}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if(url.startsWith("intent")||url.startsWith("youku")){return true;}else{return super.shouldOverrideUrlLoading(view, url);}}/*解决ssl证书问题*/@Overridepublic void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {handler.proceed();}@Overridepublic WebResourceResponse shouldInterceptRequest(WebView view, String url) {onParseListener.onFindUrl(url);return super.shouldInterceptRequest(view, url);}@Overridepublic WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {String url = request.getUrl().toString();onParseListener.onFindUrl(url);}return super.shouldInterceptRequest(view, request);}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {// TODO: Implement this methodsuper.onPageStarted(view, url, favicon);startConut();//加载超时处理}}/*解决webview加载超时问题*/private void startConut(){final Timer timer=new Timer();TimerTask timerTask=new TimerTask(){@Overridepublic void run(){onParseListener.onError("解析视频超时,请检查网速或网络是否出现问题...");timer.cancel();timer.purge();}};timer.schedule(timerTask,timeOut,1);}public interface OnParseWebUrlListener {void onFindUrl(String url);void onError(String errorMsg);}
}

调用

//初始化
this.parseWebUrlHelper=ParseWebUrlHelper.getInstance().init(this.mAct,"");
//解析网页中视频
parseWebUrlHelper.setOnParseListener(new ParseWebUrlHelper.OnParseWebUrlListener() {@Overridepublic void onFindUrl(String url) {Log.d("webUrl",url);//*****处理代码}@Overridepublic void onError(String errorMsg) {//****出错监听}

问题

Q:webview某些视频加载不出来问题
A:http://blog.csdn.net/u013148839/article/details/65448474
Q:webview拦截请求
A:https://segmentfault.com/a/1190000006805635
Q:webview由于证书问题导致不能正常加载网页问题:
A:http://blog.csdn.net/sd19871122/article/details/54632199

他人总结

1.http://www.cnblogs.com/lee0oo0/p/4026774.html

获取webview完整源码[包括iframe源码]

主要问题

动态加载

iframe嵌套

0.window也算一个frame
1.得到frame
2.判断frame的url是否已被查找
3.判断frame是否是同域名
4.同域名直接正常查找
5.不同域名直接单独加载frame的url,当成一个新的页面处理
6.一直查找直到发现一个video标签

iframe链接单独打开被检测到问题

次要问题

去除Chrome反调试

无限断点反调试

参考:https://blog.csdn.net/zzgzzg00/article/details/79504827

完结

编程这种事真是太容易跑偏了,我明明最根本的目的就是为了获取网站视频链接的,然后发现有些网站的源码获取不全,然后目的就悄然变成了去获取源码,然后折腾了几天依然没解决这个获取源码的问题,然后猛然记起以前研究过相同的问题,并且还写了一篇获取视频链接的文章,这才是真正的造轮子吧,明明已经研究过一次了,相同的问题明明已经遇到过一次了,为何这次又掉坑里了?而且掉坑里几天了,居然没意识过来,唉,笨啊,真实不长记性啊,到了最后才发现我获取源码的目的就是为了获取视频链接,说来还是我以前写的这篇文章发挥了作用:Web逆向之通过Android中WebView获取网站视频真实链接

参考

1.攻破iframe围城
2.Python爬虫关于多层嵌套iframe的解决
3.爬虫获取:解决动态加载数据和frame框架问题
4.java爬虫进阶 —— ip池使用,iframe嵌套,异步访问破解

http://www.yidumall.com/news/29973.html

相关文章:

  • 哪个网站做试卷吧有答案企业网站关键词优化
  • php做的网站模板下载seo营销外包
  • 福州做网站的哪家好直播:英格兰vs法国
  • 做喷绘的图在哪个网站找宁波seo网络优化公司
  • 新闻网站哪个做的好网站设计公司排行榜
  • 网站怎么做本地测试工具网络推广价格
  • 招聘网站是做什麼的产品推广外包
  • 人才招聘网站开发背景会计培训班要多少钱一般要学多久
  • 企业建设网站方案网站如何做seo推广
  • 有域名后怎么建网站东莞网站推广行者seo08
  • 南昌做网站费用深圳seo公司助力网络营销飞跃
  • 房地产网站建设存在问题海底捞口碑营销
  • 建站与备案的具体流程是什么网站seo优化是什么
  • 网站购买云空间巨量引擎广告投放平台官网
  • 招标网站平台有哪些推广类软文
  • 开发公司建酒店科目搜索引擎关键词seo优化公司
  • 深圳做棋牌网站建设哪家公司便宜品牌推广专员
  • 无锡微网站开发合肥网络营销公司
  • 大型做网站的公司百度权重是什么意思
  • 在ps中如何做网站框架来宾seo
  • 黔西南州做网站seo工作是什么意思
  • 网站上做镜像是什么意思杭州网站seo优化
  • 微信网站链接怎么做seo全网营销公司
  • 上海传媒公司李闪闪身价宁波seo外包服务平台
  • 宝塔 怎么做网站seo和sem的关系
  • 社区门户网站建设招标公告企业网站怎么优化
  • wordpress中文分类问题seo机构
  • wordpress建站靠谱吗搜索排名优化软件
  • 商场网站开发教程营销策略包括哪些内容
  • 免费自己建网站如何联系百度人工客服电话