• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    js+AJAX异步从优酷专辑中采集所有视频及信息
    https://www.jb51.net/article/22031.htm
    个人觉得不甚满意,因为VB.NET在.NET环境下执行采集,产生的网络连接与正则匹配消耗太大,而我最终的应用是在视频采集提交上,所以就考虑用JS的AJAX+正则表达式来完成这个目标。
    以前一直没有系统地学习JS和正则,所以花费的时间比预想的要长,折腾了一个晚上,糊弄出了下面的代码。=..=

    代码
    复制代码 代码如下:

    !--
    夜闻香原创,转载请保留此信息,万分感谢!
    博客: http://clso.cnblogs.com
    主页: http://cleclso.cn
    QQ:315514678 E-mail:clso#qq.com
    欢迎技术交流!
    -->

    html>
    head>
    title>JavaScipt AJAX 正则表达式 test/title>
    script type="text/javascript" language="javascript">
    function wrt(s){
    subret.value = s + "\n" + subret.value;
    //subret.value += "\n" + s;
    }
    var objRequest; //定义一个XML请求对象
    var previd = "",nowid =0,listid = "",iscancel=false; //其他变量
    function getlid(){
    var listid = weburl.value.match(/playlist_show\/.*(?=id_(\d+)).*\.html$/i);
    if(!listid){
    return null;
    } else {
    return listid[1];
    }
    }
    function retweb(){
    if(objRequest.readyState == 4 objRequest.status == 200){
    // 获得回调
    var webstr = objRequest.responseText;
    vid = webstr.match(/var\s+videoId\s*=\s*"(\d+)"\s*;/)[1];
    vtitle = webstr.match(/title>(.+) - (.+) - 视频 - 优酷视频 - 在线观看( - )?\/title>/)[2];
    wrt(nowid + ":" + vtitle + "=" + vid);
    if(previd == vid) return;
    previd = vid;
    nowid += 1;
    // 开始新循环
    if(iscancel) return;
    tstart();
    } else {
    //alert("回调失败!");
    return;//"error: " + objRequest.statusText;
    }
    }
    function getweb(u){
    objRequest = new XMLHttpRequest(); //new ActiveXObject("Msxml2.XMLHTTP"); //IE56初始化XMLHTTP对象
    objRequest.onreadystatechange = retweb; //异步回调方法
    objRequest.open("GET",u,true);
    objRequest.send(null);
    }
    function tstart(){
    if(listid==""){
    listid=getlid();
    }
    url = "http://v.youku.com/v_playlist/f" + listid + "o1p" + nowid + ".html";
    getweb(url);
    }

    /script>
    /head>
    body>
    input type="text" id="weburl" value="http://www.youku.com/playlist_show/id_2350764.html" style="width:640" />br />
    textarea id="subret" readonly="readonly" style="width:640; height:360;">#star/textarea>
    br/>
    input type=button value="开始提取专辑" onclick="if(iscancel)iscancel=false;tstart();" />
    input type=button value="清除文本" onclick="subret.value='';nowid =0;preid='';listid='';" />
    input type=button value="暂停" onclick="iscancel=true;" />
    /body>
    /html>


    思路基本跟上次的一样,所以就不多赘述了。
    用VB.NET一个页面的采集时间一般在1秒钟左右,而这个代码依靠客户端脚本,每个页面采集在0.3~0.5秒左右,依据用户的电脑配置而不同。
    个人用IE7测试通过,但代码比较随意,所以兼容性不是很好。如果你需要使用,请自行修改代码。
    您可能感兴趣的文章:
    • AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
    • 滑轮滚动到页面底部ajax加载数据配合jsonp实现探讨
    • 纯js实现瀑布流布局及ajax动态新增数据
    • 原生JavaScript实现Ajax的方法
    • AJAX实现跨域的三种方法(代理,JSONP,XHR2)
    • js HTML5 Ajax实现文件上传进度条功能
    • js实现简单实用的AJAX完整实例
    • JavaScript、jQuery与Ajax的关系
    • Ajax+js实现异步交互
    • jsp+ajax实现无刷新上传文件的方法
    • JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
    上一篇:ajax实现的提交文章前进行敏感词审核的代码
    下一篇:ajax 缓存 问题 requestheader
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    js+AJAX异步从优酷专辑中采集所有视频及信息 js+AJAX,异步,从优,酷,专辑,