当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp实现的7xi音乐网的采集源代码

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 asp实现的7xi音乐网的采集源代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 112 ::
收藏到网摘: n/a

共5个文件:
2个是配置文件:
配置文件:
/upload/tech/20091012/20091012012234_819f46e52c25763a55cc642422644317.txt '---保存检测ID信息的,第一次采集时设为1,从小到大检测
cfg.asp '---ASP的配置信息,内容如下:
复制代码 代码如下:

<%
'''
'''╔=======================================╗
'''┆ ┆
'''┆ @系统: 7xi音乐采集系统 Version 2.0 ┆
'''┆ @模块: 配置文件 ┆
'''┆ @创建: 2006/07/24 ┆
'''┆ @作者: D.S.Fang ┆
'''┆ @联系: [email protected] QQ-3700909 ┆
'''┆ @版权: 源码公开,无任何版权问题,您可以 ┆
'''┆ 放心使用!!!尊重作者劳动成果,请 ┆
'''┆ 保留此信息! ┆
'''┆ ┆
'''╚=======================================╝
'''
'
dim picc_FolderPath,mp3_FolderPath
dim v_7xijs_url,v_7xipicc_url,v_7xiplay_url,v_7xialbum_url,v_7ximp3_url,cfg_name,cfg_line
dim httpobj,str,str0,str1,str2,str3,str4,str5,str6,str7,str8,str9
dim is_getrm
'---音乐文件是否保存到本地,true-保存;false-不保存
is_getrm = false
'---保存路径
picc_FolderPath = "H:\mp3data\images\"
mp3_FolderPath = "H:\mp3data\rm\"
'---7xi相关页面
v_7xijs_url = "http://7xi.net/player/Js.js"
v_7xipicc_url = "http://ww.7xi.net/picc/"
v_7xiplay_url = "http://7xi.net/playsong/"
v_7xialbum_url = "http://ww.7xi.net/Vo2/"
v_7ximp3_url = "" '---实时读取
'---检测ID
cfg_name = "/upload/tech/20091012/20091012012234_819f46e52c25763a55cc642422644317.txt"
cfg_line = 1
'---读取播放js文件,获得rm文件路径
set httpobj = server.createobject("paopao.http")
str = httpobj.get(v_7xijs_url)
str0 = split(str,"theurl2="&chr(34))
str1 = split(str0(1),chr(34))
v_7ximp3_url = str1(0)
set httpobj = nothing
str = ""
'---数据库连接
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={SQL server};server=localhost;uid=mp3;pwd=mp3;database=mp3db"
'---拼SQL语句execute时需要过滤一下
Function IndbStr(str)
if isNull(str) or str = "" then
IndbStr = str
else
IndbStr = replace(replace(trim(str),"'","''"),"%","")
end if
End Function
'---关闭数据库连接
Function CloseConn()
conn.close
set conn=nothing
End Function
'---取得远程文件并保存到本地
Function GetRemoteFiles(RemotePath, LocalPath, FileName)
Dim strBody
Dim FilePath
On Error Resume Next
'---取得流
strBody = GetBody(RemotePath)
'---取得保存的文件名
if Right(LocalPath, 1) <> "\" then LocalPath = LocalPath & "\"
if not CheckDir(bkfolder) then MakeNewsDir bkfolder
FilePath = LocalPath & GetFileName(RemotePath, FileName)
'---保存文件
if SaveToFile(strBody, FilePath) = true and err.Number = 0 then
GetRemoteFiles = true
else
GetRemoteFiles = false
end if
End Function
'---远程获取内容
Function GetBody(url)
Dim Retrieval
'---建立XMLHTTP对象
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
'---重组文件名
Function GetFileName(RemotePath, FileName)
Dim arrTmp
Dim strFileExt
arrTmp = Split(RemotePath, ".")
strFileExt = arrTmp(UBound(arrTmp))
GetFileName = FileName & "." & strFileExt
End Function
'---将流内容保存为文件
Function SaveToFile(Stream, FilePath)
Dim objStream
On Error Resume Next
'---建立ADODB.Stream对象,必须要ADO 2.5以上版本
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 '以二进制模式打开
objStream.Open
objstream.write Stream
objstream.SaveToFile FilePath, 2
objstream.Close()
'---关闭对象,释放资源
Set objstream = Nothing
if err.Number <> 0 then
SaveToFile = false
else
SaveToFile = true
end if
End Function
'---读取文本文件
Function FSOlinedit(filename,lineNum)
if linenum < 1 then exit function
dim fso,f,temparray,tempcnt
set fso = server.CreateObject("scripting.filesystemobject")
if not fso.fileExists(server.mappath(filename)) then exit function
set f = fso.opentextfile(server.mappath(filename),1)
if not f.AtEndofStream then
tempcnt = f.readall
f.close
set f = nothing
temparray = split(tempcnt,chr(13)&chr(10))
if lineNum>ubound(temparray)+1 then
exit function
else
FSOlinedit = temparray(lineNum-1)
end if
end if
End function
'---检查绝对路径是否存在
Function CheckFolder(FolderPath)
dim fso1
Set fso1 = CreateObject("Scripting.FileSystemObject")
If fso1.FolderExists(FolderPath) then
'存在
CheckFolder = True
Else
'不存在
CheckFolder = False
End if
Set fso1 = nothing
End Function
'---根据指定名称生成目录
Function MakeNewsDir(foldername)
dim fso1,f
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set f = fso1.CreateFolder(foldername)
MakeNewsDir = True
Set fso1 = nothing
End Function
''''''''编码(日文字符)''''''''
Function Jencode(byVal iStr)
if isnull(iStr) or isEmpty(iStr) then
Jencode=""
Exit function
end if
dim F,i,E
E=array("Jn0;","Jn1;","Jn2;","Jn3;","Jn4;","Jn5;","Jn6;","Jn7;","Jn8;","Jn9;","Jn10;","Jn11;","Jn12;","Jn13;","Jn14;","Jn15;","Jn16;","Jn17;","Jn18;","Jn19;","Jn20;","Jn21;","Jn22;","Jn23;","Jn24;","Jn25;")
F=array(chr(-23116),chr(-23124),chr(-23122),chr(-23120),_
chr(-23118),chr(-23114),chr(-23112),chr(-23110),_
chr(-23099),chr(-23097),chr(-23095),chr(-23075),_
chr(-23079),chr(-23081),chr(-23085),chr(-23087),_
chr(-23052),chr(-23076),chr(-23078),chr(-23082),_
chr(-23084),chr(-23088),chr(-23102),chr(-23104),_
chr(-23106),chr(-23108))
Jencode=iStr
for i=0 to 25
Jencode=replace(Jencode,F(i),E(i))
next
End Function
''''''''解码(日文字符)''''''''
Function Juncode(byVal iStr)
if isnull(iStr) or isEmpty(iStr) then
Juncode=""
Exit function
end if
dim F,i,E
E=array("Jn0;","Jn1;","Jn2;","Jn3;","Jn4;","Jn5;","Jn6;","Jn7;","Jn8;","Jn9;","Jn10;","Jn11;","Jn12;","Jn13;","Jn14;","Jn15;","Jn16;","Jn17;","Jn18;","Jn19;","Jn20;","Jn21;","Jn22;","Jn23;","Jn24;","Jn25;")
F=array(chr(-23116),chr(-23124),chr(-23122),chr(-23120),_
chr(-23118),chr(-23114),chr(-23112),chr(-23110),_
chr(-23099),chr(-23097),chr(-23095),chr(-23075),_
chr(-23079),chr(-23081),chr(-23085),chr(-23087),_
chr(-23052),chr(-23076),chr(-23078),chr(-23082),_
chr(-23084),chr(-23088),chr(-23102),chr(-23104),_
chr(-23106),chr(-23108))
Juncode=iStr
for i=0 to 25
Juncode=replace(Juncode,E(i),F(i))'□
next
End Function
%>

1个是手动添加歌手:
addsinger.asp '---手动添加歌手,内容如下:
程序代码
<%
'''
'''╔=======================================╗
'''┆ ┆
'''┆ @系统: 7xi音乐采集系统 Version 2.0 ┆
'''┆ @模块: 手动添加歌手 ┆
'''┆ @创建: 2006/07/24 ┆
'''┆ @作者: D.S.Fang ┆
'''┆ @联系: [email protected] QQ-3700909 ┆
'''┆ @版权: 源码公开,无任何版权问题,您可以 ┆
'''┆ 放心使用!!!尊重作者劳动成果,请 ┆
'''┆ 保留此信息! ┆
'''┆ ┆
'''╚=======================================╝
'''
'%>
<!--#include file="cfg.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<title>添加歌手分类_7xi音乐采集更新系统</title>
</head>
<body>
<br>7xi音乐采集更新系统<br><br>
<%
dim sql
dim singer_name,singer_first_name,singer_sort
singer_name = IndbStr(request("singer_name"))
singer_first_name = Ucase(IndbStr(request("singer_first_name")))
singer_sort = request("singer_sort")
response.write "<br>歌手信息<br><br>姓名:"&singer_name&"<br>字母:"&singer_first_name&"<br>性质:"&singer_sort
sql = "insert into d_singer (singer_name,singer_first_name,singer_sort,is_down) values ('"&singer_name&"','"&singer_first_name&"','"&singer_sort&"',0)"
response.write "<br><br>"&sql
conn.execute(sql)
CloseConn()
'---歌手添加完成后转入信息采集重新检测
response.write "<br><br>歌手信息检查添加完成,正在准备检查获取更新...<br>"
response.write "<meta http-equiv=refresh content=""1 ; url=get.asp"">"
%>
</body>
</html>

2个是采集程序:
get.asp '---采集歌手专辑歌曲信息,内容如下
程序代码
<%
'''
'''╔=======================================╗
'''┆ ┆
'''┆ @系统: 7xi音乐采集系统 Version 2.0 ┆
'''┆ @模块: 歌手、专辑、歌曲信息采集 ┆
'''┆ @创建: 2006/07/24 ┆
'''┆ @作者: D.S.Fang ┆
'''┆ @联系: [email protected] QQ-3700909 ┆
'''┆ @版权: 源码公开,无任何版权问题,您可以 ┆
'''┆ 放心使用!!!尊重作者劳动成果,请 ┆
'''┆ 保留此信息! ┆
'''┆ ┆
'''╚=======================================╝
'''
'%>
<!--#include file="cfg.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<title>歌手专辑歌曲信息采集_7xi音乐采集更新系统</title>
</head>
<body>
<br>7xi音乐采集更新系统<br><br>
<%
dim t7xiid,url,FolderPath,fso,fout
dim songid(100),songname(100)
dim strsinger,strlang,stralbum,strtime,strcorp,strcontent,strpicc,singerid,albumid
dim rssort,rssinger,rsalbum,rssong,i,m,sql,okimg
t7xiid = FSOlinedit(cfg_name,cfg_line)
url = v_7xialbum_url&"v_"&t7xiid&".htm"
set httpobj=server.createobject("paopao.http")
Err.Clear
'on error resume next
str = ""
str = httpobj.get(url)
if str = "" then
CloseConn()
if t7xiid < 3198 then '---没有检测到时是否递增ID,继续检测
str = t7xiid + 1
FolderPath = Server.MapPath(".\")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fout = fso.CreateTextFile(FolderPath & "\/upload/tech/20091012/20091012012234_819f46e52c25763a55cc642422644317.txt")
fout.WriteLine str
fout.close
response.write "<br>当前ID号不存在,正在检查下一ID号 ...<br>"
response.write "<meta http-equiv=refresh content=""0 ; url=get.asp"">"
else '---不需要递增ID检测时,转到歌曲信息采集
response.write "<br>歌手专辑信息检查完毕,正在准备检查获取歌曲信息 ...<br>"
response.write "<meta http-equiv=refresh content=""0 ; url=getrm.asp"">"
response.end
end if
else
str0 = split(str,"歌 手 : ")
str1 = split(str0(1),"</td>")
strsinger = IndbStr(str1(0))
response.write "<br>歌手:"&strsinger
str0 = split(str,"语 种 : ")
str1 = split(str0(1),"</td>")
strlang = str1(0)
response.write "<br>语种:"&strlang
str0 = split(str,"专 辑 : ")
str1 = split(str0(1),"</a>")
str2 = split(str1(0),""">")
stralbum = IndbStr(str2(1))
response.write "<br>专辑:"&stralbum
str0 = split(str,"时 间 : ")
str1 = split(str0(1),"</td>")
strtime = str1(0)
response.write "<br>时间:"&strtime
str0 = split(str,"公 司 : ")
str1 = split(str0(1),"</td>")
strcorp = str1(0)
response.write "<br>公司:"&strcorp
str0 = split(str,"<tr valign=""top""><td colspan=""2"">")
str1 = split(str0(1),"</td>")
strcontent = replace(replace(IndbStr(str1(0)),"<br>",chr(13))," "," ")
response.write "<br>简介:"&strcontent
str0 = split(str,"<img src=""../picc/")
str1 = split(str0(1),"""")
strpicc = str1(0)
response.write "<br>图片:"&strpicc
response.write "<br><img src="&v_7xipicc_url&strpicc&" border=0>"
set rssinger = conn.execute("select * from d_singer where singer_name='"&strsinger&"'")
'---歌手信息不存在时需要手动添加歌手
if rssinger.eof then
response.write "<br>select * from d_singer where singer_name='"&strsinger&"'"
response.write "<br><br>歌手不存在,需要手动操作添加。<br><br>请按以下要求添加歌手:<br><br>"
%>
<form action="addsinger.asp">
<input type="text" size="20" name="singer_name" value="<%=strsinger%>">
<input type="text" size="6" name="singer_first_name" value="姓" maxlength="3">
<select name="singer_sort" size="1"><%'%>
<%
set rssort = conn.execute("select * from s_sort ")
do while not rssort.eof and i < 10
%>
<option value="<%=rssort("id")%>"><%=rssort("sort_name")%></option><%'%>
<%
rssort.movenext
loop
rssort.close
set rssort = nothing
%></select>
<input type="submit" value="添加">
</form>
<%
CloseConn()
response.end
else '---歌手信息已存在,检查专辑信息是否需要入库
singerid = rssinger("id")
conn.execute("update d_singer set is_down=0 where id="&singerid)
response.write "<br><br>歌手信息正确,正在检查获取专辑信息 ...<br>"
set rsalbum = conn.execute("select * from d_album where album_singer="&singerid&" and album_name='"&stralbum&"'")
if rsalbum.eof then
str1 = split(strpicc,".")
str2 = str1(0)
sql="insert into d_album (album_singer,file_img,album_name,album_lang,album_corp,album_time,album_intro,add_time,is_down,album_7xi) values ('"&singerid&"','"&strpicc&"','"&stralbum&"','"&strlang&"','"&strcorp&"','"&strtime&"','"&strcontent&"','"&now&"',0,"&t7xiid&")"
conn.execute(sql)
'---采集保存专辑缩略图
okimg = GetRemoteFiles(v_7xipicc_url&strpicc,picc_FolderPath,str2)
response.write "<br>专辑信息检查添加完成,正在检查获取歌曲信息 ..."&"<br>SQL语句:"&sql
else
response.write "<br><br>专辑信息正确,正在准备检查获取歌曲信息 ..."
end if
rsalbum.close
set rsalbum = nothing
end if
rssinger.close
set rssinger = nothing
set rsalbum = conn.execute("select * from d_album where album_singer="&singerid&" and album_name='"&stralbum&"'")
albumid = rsalbum("id")
rsalbum.close
set rsalbum = nothing
response.write "<br><br>专辑歌曲信息<br>"
'----歌曲ID
i = 1
str0 = split(str,"<input type="&chr(34)&"checkbox"&chr(34)&" name="&chr(34)&"checked"&chr(34)&" value="&chr(34))
response.write "<br>歌曲ID:"
do while i <= Ubound(str0)
str1 = split(str0(i),chr(34))
songid(i-1) = str1(0)
response.write songid(i-1)&" - "
i = i + 1
loop
response.write "共"&i&"首。"
'---歌曲名称
m = 1
str0 = split(str,"<a href=""../IVR.asp?id=")
response.write "<br><br>歌曲:"
do while m <= Ubound(str0)
str1 = split(str0(m),""" target=""_blank""><img src=""/upload/tech/20091012/20091012012238_d18f655c3fce66ca401d5f38b48c89af.gif"" alt=""免费点歌")
songname(m-1) = Jencode(replace(str1(0),"'","''"))
response.write Juncode(songname(m-1))&" - "
m = m + 1
loop
response.write "共"&i&"首。"
'---歌曲ID数目和歌曲名数目不一致时需要检查是否有误
if i <> m then
response.write "<br><br><font color=red><b>错误:</b>歌曲ID数目与歌曲名数目不一致,请检查目标页面:"& url &"</font>"
response.end
end if
'---检查歌曲是否需要入库
do while i > 1
set rssong = conn.execute("select * from d_mp3 where mp3_album="&albumid&" and mp3_singer="&singerid&" and mp3_name='"&songname(i-2)&"'")
if rssong.eof then
sql = "insert into d_mp3 (mp3_7xi,mp3_singer,mp3_album,mp3_name) values ('"&songid(i-2)&"','"&singerid&"','"&albumid&"','"&songname(i-2)&"')"
conn.execute(sql)
response.write "<br><font color=red>添加:"&songname(i-2)&"</font>"
response.write sql
else
response.write "<br>跳过:"&songname(i-2)
end if
rssong.close
set rssong = nothing
i = i-1
loop
CloseConn()
'---记录下一检测ID号
str = t7xiid + 1
FolderPath = Server.MapPath(".\")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fout = fso.CreateTextFile(FolderPath & "\/upload/tech/20091012/20091012012234_819f46e52c25763a55cc642422644317.txt")
fout.WriteLine str
fout.close
'---继续检测下一ID
response.write "<br>正在检测下一ID信息 ..."
response.write "<meta http-equiv=refresh content=""0 ; url=get.asp"">"
end if
%>
</body>
</html>

getrm.asp '---采集RM文件更新歌曲信息,内容如下:
程序代码
<%
'''
'''╔=======================================╗
'''┆ ┆
'''┆ @系统: 7xi音乐采集系统 Version 2.0 ┆
'''┆ @模块: 歌曲文件、歌词等信息采集 ┆
'''┆ @创建: 2006/07/24 ┆
'''┆ @作者: D.S.Fang ┆
'''┆ @联系: [email protected] QQ-3700909 ┆
'''┆ @版权: 源码公开,无任何版权问题,您可以 ┆
'''┆ 放心使用!!!尊重作者劳动成果,请 ┆
'''┆ 保留此信息! ┆
'''┆ ┆
'''╚=======================================╝
'''
'%>
<!--#include file="cfg.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<title>歌曲文件歌词等信息采集_7xi音乐采集更新系统</title>
</head>
<body>
<br>7xi音乐采集更新系统<br><br>
<%
dim getcount,rssong,id,t7xiid,url,filerm,tmpurl,i,tmpfolder,okrm,singer,song,tmp_url,lyric,rs
'---每次处理歌曲数量
getcount = 5
set rssong = conn.execute("select top " & getcount & " a.*,b.singer_name from d_mp3 a,d_singer b where a.mp3_singer=b.id and a.file_rm is null order by a.id desc")
if rssong.eof then '---歌曲信息处理完成
rssong.close
set rssong = nothing
CloseConn()
response.write "<br>歌曲文件信息检查采集完成!"
response.write "<br><br>采集完了,可以做垃圾站了!"
response.end
else
do while not rssong.eof
id = rssong("id")
t7xiid = rssong("mp3_7xi")
singer = replace(rssong("singer_name")," ","%20")
song = replace(rssong("mp3_name")," ","%20")
response.write "<br><br>歌曲名 - "& singer & "-" &song
'---目标页面
url = v_7xiplay_url&t7xiid&".htm"
set httpobj = server.createobject("paopao.http")
Err.Clear
on error resume next
response.write "<br>"&url
str = httpobj.get(url)
if Err = 0 then '---读取目标页面正常时的处理
'----歌曲文件名及文件夹
str0 = split(str,"<param name='src' value='"&chr(34)&"+s_list+"&chr(34))
str1 = split(str0(1),"'>")
filerm = str1(0)
response.write "<br>文件名 - "& filerm
tmpurl = v_7ximp3_url & filerm
response.write "<br>目标源 - "& tmpurl
'---需要保存音乐文件到本地时,采集保存音乐文件
if is_getrm then
str0 = split(filerm,"/")
i = 0
do while i < Ubound(str0)
tmpfolder = mp3_FolderPath & str0(i)
if not CheckFolder(tmpfolder) then MakeNewsDir tmpfolder
i = i + 1
loop
response.write "<br>保存为 - "& tmpfolder & "\" & str0(Ubound(str0))
okrm = GetRemoteFiles(tmpurl,tmpfolder,replace(str0(Ubound(str0)),".rm",""))
else
response.write "<br><font color=red>请注意 - </font>RM文件配置为不保存!!!!!!!!!!"
end if
'---歌词采集
tmp_url = "http://www.7xi.net/showword.asp?id=" & t7xiid
response.write "<br>"&tmp_url
set httpobj = server.createobject("paopao.http")
str0 = httpobj.get(tmp_url)
Err.Clear
on error resume next
str1 = split(str0,"<td width=""92%"">"&chr(13))
str2 = split(str1(1)," </td>")
lyric = str2(0)
lyric = replace(lyric,"<br>",chr(13))
lyric = replace(lyric," "," ")
lyric = replace(replace(lyric,"<p>",""),"</p>","")
lyric = IndbStr(trim(lyric))
if Instr(lyric,"mp3.baidu.com") then lyric = "暂时还没歌词"
if len(lyric) < 20 or Err <> 0 then
lyric = "暂时还没歌词"
response.write "<br>7xi自带歌词不完整,将采集baidu歌词"
end if
if lyric = "暂时还没歌词" then
Err.Clear
tmp_url = "http://mp3.baidu.com/m?f=ms&rn=10&tn=baidump3lyric&ct=150994944&word="&singer&"+"&song
response.write "<br>"&tmp_url
str0 = httpobj.get(tmp_url)
str1 = split(str0,"<B><font style=color:#e10900>"&song&"</font></B>")
if Ubound(str1) >= 1 then
str2 = split(str0,"<div style=""padding-left:10px;line-height:20px;padding-top:1px"">")
str3 = split(str2(1),"</div>")
lyric = str3(0)
lyric = replace(lyric,"<br>",chr(13))
lyric = replace(lyric," "," ")
lyric = replace(lyric,"<font style=color:#e10900>","")
lyric = replace(lyric,"</font>","")
else
lyric = "暂时还没歌词"
end if
end if
response.write "<br>歌词 - "&lyric
'---将采集到的信息更新到数据库
if is_getrm then
conn.execute("update d_mp3 set file_rm='"&filerm&"',mp3_lyric='"&lyric&"',is_down='1' where id="&id)
else
conn.execute("update d_mp3 set file_rm='"&filerm&"',mp3_lyric='"&lyric&"',is_down='0' where id="&id)
end if
else '---读取目标页面出错时的处理
conn.execute("update d_mp3_t set file_rm='nourl',is_down='1' where id="&id)
response.write "<br><br><font color=red><b>错误:</b>获取目标页面错误,请检查:"& url &"</font>"
response.end
end if
rssong.movenext
loop
rssong.close
set rssong = nothing
CloseConn()
'---继续检测采集下一批歌曲信息
response.write "<br>正在检测下一批歌曲信息 ...<br><br>"
response.write "<meta http-equiv=refresh content=""0 ; url=getrm.asp"">"
end if
%>
</body>
</html>

数据库表的SQL脚本:
数据库表
程序代码
s_sort ----歌手分类表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[s_sort]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[s_sort]
GO
Create TABLE [dbo].[s_sort] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[sort_name] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
Alter TABLE [dbo].[s_sort] WITH NOCHECK ADD
CONSTRAINT [PK_s_sort] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO


d_singer ----歌手信息表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[d_singer]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[d_singer]
GO
Create TABLE [dbo].[d_singer] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[singer_name] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[singer_first_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[singer_sort] [int] NULL ,
[mp3_num] [int] NULL ,
[is_putup] [bit] NULL ,
[view_count] [int] NULL ,
[is_down] [bit] NULL
) ON [PRIMARY]
GO
Alter TABLE [dbo].[d_singer] WITH NOCHECK ADD
CONSTRAINT [PK_d_singer] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO

d_album ----专辑信息表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[d_album]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[d_album]
GO
Create TABLE [dbo].[d_album] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[album_singer] [int] NULL ,
[file_img] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[album_name] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[album_lang] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[album_corp] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[album_time] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[album_intro] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[is_singer_album] [bit] NULL ,
[view_count] [int] NULL ,
[is_putup] [bit] NULL ,
[add_time] [datetime] NULL ,
[album_7xi] [int] NULL ,
[is_down] [bit] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Alter TABLE [dbo].[d_album] WITH NOCHECK ADD
CONSTRAINT [PK_d_album] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO


d_mp3 ----歌曲信息表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[d_mp3]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[d_mp3]
GO
Create TABLE [dbo].[d_mp3] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[mp3_name] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[mp3_album] [int] NULL ,
[mp3_singer] [int] NULL ,
[file_rm] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[file_size] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[is_putup] [bit] NULL ,
[mp3_lyric] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL ,
[view_count] [int] NULL ,
[down_count] [int] NULL ,
[is_my] [bit] NULL ,
[mp3_7xi] [int] NULL ,
[is_down] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
Alter TABLE [dbo].[d_mp3] WITH NOCHECK ADD
CONSTRAINT [PK_d_mp3] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO