AJAX는 Youku 앨범(JavaScript 코드)_javascript 기술에서 모든 비디오와 정보를 비동기식으로 수집합니다.
WBOY
풀어 주다: 2016-05-16 18:15:53
원래의
1253명이 탐색했습니다.
개인적으로 VB.NET은 .NET 환경에서 수집을 수행하는데 그에 따른 네트워크 연결 및 정규 매칭이 너무 많이 소모되기 때문에 불만족스럽습니다. 그리고 최종 애플리케이션이 비디오 수집 및 제출에 있어서 JS의 AJAX 정규식 방식을 사용하는 것을 고려했습니다. 이 목표를 달성하기 위해. JS와 정규식을 체계적으로 공부해본 적이 없어서 생각보다 시간이 오래 걸려서 밤새 고생한 끝에 다음과 같은 코드를 만들었습니다. =..=
<-- Ye Wenxiang의 원본, 재인쇄를 위해 이 정보를 보관해 주세요. 정말 감사합니다! 블로그: http://clso.cnblogs.com 홈페이지: http://cleclso.cn QQ:315514678 E-mail:clso#qq.com 기술 교류를 환영합니다! -->
JavaScipt AJAX 및 정규식 테스트 <스크립트 유형= " text/javascript" 언어="javascript"> 함수 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(/(. ) - (. ) - 비디오 - Youku 비디오 - 온라인 보기 ( - )?/)[2] wrt(nowid ": " vtitle "=" vid); if(previd == vid) return; previd = vid; nowid = 1 // 새 주기 시작 if(iscancel) return ; tstart(); } else { //alert("콜백 실패! "); return;//"오류: " 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); }
VB.NET을 사용하는 페이지의 수집 시간은 일반적으로 약 1초이며, 이 코드는 클라이언트 스크립트에 의존합니다. 각 페이지의 수집 시간은 사용자의 컴퓨터 구성에 따라 약 0.3~0.5초입니다. 직접 IE7로 테스트해서 통과했는데 코드가 더 랜덤해서 호환성이 별로 좋지 않네요. 꼭 사용해야 한다면 코드를 직접 수정해주세요. Ye Wenxiang의 원본 작품이므로 재인쇄 시 이 정보를 유지하시기 바랍니다. 블로그: http://clso.cnblogs.com/ 홈페이지: http://www.cleclso.cn/