手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
摘要:个人觉得不甚满意,因为VB.NET在.NET环境下执行采集,产生的网络连接与正则匹配消耗太大,而我最终的应用是在视频采集提交上,所以就考虑用...

个人觉得不甚满意,因为VB.NET在.NET环境下执行采集,产生的网络连接与正则匹配消耗太大,而我最终的应用是在视频采集提交上,所以就考虑用JS的AJAX+正则表达式来完成这个目标。

以前一直没有系统地学习JS和正则,所以花费的时间比预想的要长,折腾了一个晚上,糊弄出了下面的代码。=..=

复制代码 代码如下:

<>

<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(/vars+videoIds*=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"); //IE5&6初始化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" /><br />

<textarea id="subret" readonly="readonly">#star</textarea>

<br/>

<input type=button value="开始提取专辑" />

<input type=button value="清除文本" />

<input type=button value="暂停" />

</body>

</html>

思路基本跟上次的一样,所以就不多赘述了。

用VB.NET一个页面的采集时间一般在1秒钟左右,而这个代码依靠客户端脚本,每个页面采集在0.3~0.5秒左右,依据用户的电脑配置而不同。

个人用IE7测试通过,但代码比较随意,所以兼容性不是很好。如果你需要使用,请自行修改代码。

夜闻香原创,转载请保留此信息

博客: http://clso.cnblogs.com/

主页: http://www.cleclso.cn/

【AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)】相关文章:

手机开发必备技巧:javascript及CSS功能代码分享

prototype 1.5 & scriptaculous 1.6.1 学习笔记

js实现文本框选中的方法

用srcElement实现添加效果 原创

JavaScript中Cookies的相关使用教程

编写高质量JavaScript代码的基本要点

用于table内容排序

让iframe框架网页在任何浏览器下自动伸缩

使用RequireJS优化JavaScript引用代码的方法

JS实现两表格里数据来回转移的方法

精品推荐
分类导航