今天公司QA老大让写个程序用js动态抓取一个网站的内容,由于需求不明,治好把整个网站的html代码用ajax抓下来,在网上搜了下,还真有这样的代码,但是那网站使用的是相对路径,只好写了个正则表达式给他把网址补上去,成为绝对路径,整个页面才显示正常,代码如下,以备后观
Code
1 <script language="vbscript">
2 Function bytes2BSTR(vIn)
3 Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
4 strReturn=""
5 For i=1 To LenB(vIn)
6 ThisCharCode=AscB(MidB(vIn,i,1))
7 If ThisCharCode<&H80 Then
8 strReturn=strReturn&Chr(ThisCharCode)
9 Else
10 NextCharCode =AscB(MidB(vIn,i+1,1))
11 strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
12 i=i+1
13 End If
14 Next
15 bytes2BSTR=strReturn
16 End Function
17 </script>
18 <script language="javascript">
19 function Checkstyle(htmlcode)
20 {
21 var s;
22 var RexStr = /Include\/|images\//gi
23 s =htmlcode.replace(RexStr,
24 function(MatchStr){
25 switch(MatchStr){
26 case "Include/":
27 case "include/":
28 return "http://getalife.com.au/Include/";
29 break;
30 case "images/":
31 return "http://getalife.com.au/images/";
32 break;
33 default :
34 break;
35 }
36 }
37 )
38
39 return s;
40 }
41 var xmlhttp=new ActiveXObject("Msxml2.xmlhttp")
42 xmlhttp.open("GET","http://getalife.com.au/listactivities.aspx?siteref=homepage",false)
43 xmlhttp.send()
44 var m=Checkstyle(bytes2BSTR(xmlhttp.ResponseBody));
45 document.write(m);
46 //document.write(bytes2BSTR(xmlhttp.ResponseBody));
47 </script>
1 <script language="vbscript">
2 Function bytes2BSTR(vIn)
3 Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
4 strReturn=""
5 For i=1 To LenB(vIn)
6 ThisCharCode=AscB(MidB(vIn,i,1))
7 If ThisCharCode<&H80 Then
8 strReturn=strReturn&Chr(ThisCharCode)
9 Else
10 NextCharCode =AscB(MidB(vIn,i+1,1))
11 strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
12 i=i+1
13 End If
14 Next
15 bytes2BSTR=strReturn
16 End Function
17 </script>
18 <script language="javascript">
19 function Checkstyle(htmlcode)
20 {
21 var s;
22 var RexStr = /Include\/|images\//gi
23 s =htmlcode.replace(RexStr,
24 function(MatchStr){
25 switch(MatchStr){
26 case "Include/":
27 case "include/":
28 return "http://getalife.com.au/Include/";
29 break;
30 case "images/":
31 return "http://getalife.com.au/images/";
32 break;
33 default :
34 break;
35 }
36 }
37 )
38
39 return s;
40 }
41 var xmlhttp=new ActiveXObject("Msxml2.xmlhttp")
42 xmlhttp.open("GET","http://getalife.com.au/listactivities.aspx?siteref=homepage",false)
43 xmlhttp.send()
44 var m=Checkstyle(bytes2BSTR(xmlhttp.ResponseBody));
45 document.write(m);
46 //document.write(bytes2BSTR(xmlhttp.ResponseBody));
47 </script>