< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<!-- #include file="conn.asp" -->
<!-- #include file="inc/function.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transicional//EN" " http://www.w3.org/TR/html4/loose.dtd ">
<html>
<cabeza>
<título>Documento sin título</título>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="300;URL=steal_house.asp">
</cabeza>
<cuerpo>
<%
en caso de error reanudar siguiente
'
Servidor.ScriptTimeout = 999999
'=================================================== =======
'字符编码函数
'=================================================== ===
Función BytesToBstr(cuerpo,código)
corriente de objetos tenue
establecer objstream = Server.CreateObject("adodb.stream")
objstream.Tipo = 1
objstream.Modo =3
objstream.Abrir
objstream.Escribir cuerpo
objstream.Posición = 0
objstream.Tipo = 2
objstream.Charset = código
BytesToBstr = objstream.ReadText
objstream.Cerrar
establecer objstream = nada
Función final
'取行字符串在另一字符串中的出现位置
Función Nuevacadena(wstr,cadena)
Nuevacadena=Instr(lcase(wstr),lcase(cadena))
si Nuevacadena<=0 entonces Nuevacadena=Len(wstr)
Función final
'替换字符串函数
función ReemplazarStr(ori,str1,str2)
ReemplazarStr=reemplazar(ori,str1,str2)
función final
'=================================================== ===
función ReadXml(url,código,inicio,finaliza)
establecer oSend=createobject("Microsoft.XMLHTTP")
Código fuente = oSend.open ("GET",url,falso)
oEnviar.enviar()
ReadXml=BytesToBstr(oSend.responseBody,código)
inicio=Instr(ReadXml,inicio)
ReadXml=mid(ReadXml,inicio)
termina = Instr (ReadXml, termina)
ReadXml=izquierda(ReadXml,finaliza-1)
función final
función SubStr(cuerpo,inicio,finaliza)
inicio=Instr(cuerpo,inicio)
SubStr=medio(cuerpo,inicio+len(inicio)+1)
termina = Instr (SubStr, termina)
SubStr=izquierda(SubStr,termina-1)
función final
dim getcont, contenido de noticias
URL tenue, título
url=" http://www.***.com"'新闻网址knowsky.com
getcont=ReadXml(url,"gb2312","<table class=k2 border=""0""","</table>")
getcont=RegexHtml(getcont)
dim KeyId,NoticiasClase,Ciudad,Posición,Tipo de casa,Nivel,Área,Precio,Demostra
dim ContactMan,Contacto
para i=2 a ubound(getcont)
respuesta.Escribir(getcont(i)&"__<br>")
tempLink=mid(getcont(i),instr(getcont(i),"href=""")+6,instr(getcont(i),""" onClick")-10)
enlacetemp=reemplazar(enlacetemp,"../","")
respuesta.Escribir(i&":"&tempLink&"<br>")
NewsContent=ReadXml(tempLink,"gb2312","<td valign=""bottom"" width=""400"">","<hr width=""760"" noshade size=""1"" color= ""#808080""> ")
Contenido de noticias=RemoveHtml(Contenido de noticias)
Contenido de noticias=reemplazar(Contenido de noticias,VbCrLf,"")
Contenido de noticias=reemplazar(Contenido de noticias,vbNewLine,"")
Contenido de noticias=reemplazar(Contenido de noticias," ","")
Contenido de noticias=reemplazar(Contenido de noticias," ","")
Contenido de noticias=reemplazar(Contenido de noticias," ","")
Contenido de noticias=reemplazar(Contenido de noticias,"n","")
Contenido de noticias=reemplazar(Contenido de noticias,chr(10),"")
Contenido de noticias=reemplazar(Contenido de noticias,chr(13),"")
'===============obtener contenido========================
respuesta.Escribir(Contenido de noticias)
KeyId=SubStr(NewsContent,"列号:","信息类别:")
NewsClass=SubStr(NewsContent,"类别:","所在城市:")
Ciudad=SubStr(NewsContent,"城市:","房屋具体位置:")
Posición=SubStr(NewsContent,"位置:","房屋类型:")
HouseType=SubStr(NewsContent,"类型:","楼层:")
Nivel=SubStr(Contenido de noticias,"楼层:","使用面积:")
Area=SubStr(NewsContent,"面积:","房价:")
Precio=SubStr(NewsContent,"房价:","其他说明:")
Demostra=SubStr(NewsContent,"说明:","联系人:")
ContactMan=SubStr(NewsContent,"联系人:","联系方式:")
Contacto=SubStr(Contenido de noticias,"联系方式:","信息来源:")
respuesta.Write("总序列号:"&KeyId&"<br>")
respuesta.Write("信息类别:"&NewsClass&"<br>")
respuesta.Write("所在城市:"&Ciudad&"<br>")
respuesta.Write("房屋具体位置:"&Posición&"<br>")
respuesta.Write("房屋类型:"&HouseType&"<br>")
respuesta.Write("楼层:"&Nivel&"<br>")
respuesta.Write("使用面积:"&Área&"<br>")
respuesta.Write("房价:"&Precio&"<br>")
respuesta.Write("其他说明:"&Demostra&"<br>")
respuesta.Write("联系人:"&ContactMan&"<br>")
respuesta.Write("联系方式:"&Contacto&"<br>")
'título=RemoveHTML(aa(i))
'respuesta.Escribir("título:"&título)
para n=0 a application.Contents.count
si (aplicación.Contenido (n) = KeyId) entonces
si sale = verdadero
terminar si
próximo
si no, si salgo, entonces
aplicación(hora&i)=KeyId
'添加到数据库
'=================================================== ===
establecer rs=server.CreateObject("adodb.recordset")
rs.open "seleccione el top 1 * del orden de noticias por id desc",conn,3,3
rs.añadirnuevo
rs("ClaseNoticias")=ClaseNoticias
rs("Ciudad")=Ciudad
rs("Posición")=Posición
rs("Tipo de casa")=Tipo de casa
rs("Nivel")=Nivel
rs("Área")=Área
rs("Precio")=Precio
rs("Demostra")=Demostra
rs("Hombre de contacto")=Hombre de contacto
rs("Contacto")=Contacto
rs.actualización
rs.cerrar
establecer rs = nada
terminar si
'=================================================== =
próximo
función RemoveTag(body)
Establecer regEx = Nueva RegExp
regEx.Pattern = "<[a].*?</[a]>"
regEx.IgnoreCase = Verdadero
regEx.Global = Verdadero
Establecer coincidencias = regEx.Execute(cuerpo)
tenue i,arr(15),ifexit
yo=0
j=0
Para cada partido en partidos
TempStr = Coincidencia.Valor
TempStr=reemplazar(TempStr,"<td>","")
TempStr=reemplazar(TempStr,"</td>","")
TempStr=reemplazar(TempStr,"<tr>","")
TempStr=reemplazar(TempStr,"</tr>","")
arr(i)=TempStr
yo=yo+1
si(i>=15) entonces
salida para
terminar si
Próximo
Establecer expresión regular = nada
Establecer coincidencias = nada
Eliminar etiqueta=arr
función final
función RegexHtml (cuerpo)
tenue r_arr(47),r_temp
Establecer regEx2 = Nueva RegExp
regEx2.Pattern ="<a.*?</a>"
regEx2.IgnoreCase = Verdadero
regEx2.Global = Verdadero
Establecer coincidencias2 = regEx2.Execute(cuerpo)
iii=0
Para cada partido en Matches2
r_arr(iii)=Coincidencia.Valor
iii=iii+1
Próximo
RegexHtml=r_arr
establecer regEx2 = nada
establecer Coincidencias2=nada
función final
'=================================================== =====
conexión.cerrar
establecer conexión = nada
%>
</cuerpo>
</html>
función.asp
<%
'*************************************************** *
'函数名:gotTopic
'作 用:截字符串,汉字一个算两个字符,英文算一个字符
'参 数:str ----原字符串
' strlen ----截取长度
'返回值:截取后的字符串
'*************************************************** *
función gotTopic(str,strlen)
si str="" entonces
gotTopic=""
función de salida
terminar si
tenue l,t,c,i
str=reemplazar(reemplazar(reemplazar(reemplazar(str," "," "),""",chr(34)),">",">"),"<","<" )
cadena=reemplazar(cadena,"?","")
l=len(cadena)
t=0
para i=1 a l
c=Abs(Asc(Medio(str,i,1)))
si c>255 entonces
t=t+2
demás
t=t+1
terminar si
si t>=strelen entonces
gotTopic=izquierda(cadena,i) & "…"
salida para
demás
gotTopic=cadena
terminar si
próximo
gotTopic=reemplazar(reemplazar(reemplazar(reemplazar(gotTopic," "," "),chr(34),"""),">",">"),"<","<" )
función final
'=================================================== ========
'函数:RemoveHTML(strHTML)
'功能:去除HTML标记
'参数:strHTML --要去除HTML标记的字符串
'=================================================== ========
Función EliminarHTML(strHTML)
Dim objRegExp, Coincidencia, Coincidencias
Establecer objRegExp = Nueva expresión regular
objRegExp.IgnoreCase = Verdadero
objRegExp.Global = Verdadero
'取闭合的<>
objRegExp.Pattern = "<.+?>"
'进行匹配
Establecer coincidencias = objRegExp.Execute(strHTML)
' 遍历匹配集合,并替换掉匹配的项目
Para cada partido en partidos
strHtml=Reemplazar(strHTML,Match.Value,"")
Próximo
EliminarHTML=strHTML
Establecer objRegExp = Nada
establecer coincidencias = nada
Función final
%>
conexión.asp
<%
'en caso de error, reanudar siguiente
establecer conexión=servidor.CreateObject("adodb.conexión")
con= "driver={Controlador de Microsoft Access (*.mdb)};dbq=" & Server.MapPath("stest.mdb")
conn.open con
sub connclose
con.cerrar
establecer conexión = nada
sub final
%>
附:抓取信息的详细页面事例
总序列号: | 479280 |
信息类别: | 出租 |
所在城市: | 济南 |
房屋具体位置: | 华龙路华信路交界口 |
房屋类型: | 其他 |
楼层: | 六层 |
使用面积: | 24~240 平方米之间 |
房价: | 0 [租赁:元/月,买卖:万元/套] |
其他说明: | 华信商务楼3至6层小空间对外出租(0.5元/平起),本楼属纯商务办公投资使用,可用于办公写字间,周边设施齐全、交通便利(37、80、K95在本楼前经过),全产权、市证,楼内设施包括水、电、暖、电梯设施齐全,有意者可电讯! |
联系人: | 鲁、王 |
联系方式: | 88017966、86812217 |
信息来源: | 2005-8-4 8:28:55 来自:218.98.86.175 |
点击次数: | 19 |