< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<!-- #include arquivo="conn.asp" -->
<!-- #include arquivo="inc/function.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd ">
<html>
<cabeça>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="300;URL=steal_house.asp">
</head>
<corpo>
<%
em caso de erro, retome a seguir
'
Servidor.ScriptTimeout = 999999
'================================================ =======
'字符编码函数
'================================================ ===
Função BytesToBstr(corpo,código)
escurecer objstream
definir objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Modo =3
objstream.Open
objstream.Escrever corpo
objstream.Posição = 0
objstream.Type = 2
objstream.Charset = código
BytesToBstr = objstream.ReadText
objstream.Fechar
definir objstream = nada
Função Final
'取行字符串在另一字符串中的出现位置
Função Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
se Newstring<=0 então Newstring=Len(wstr)
Função final
'替换字符串函数
função SubstituirStr(ori,str1,str2)
SubstituirStr=substituir(ori,str1,str2)
função final
'================================================ ===
função ReadXml(url,código,início,fim)
definir oSend=createobject("Microsoft.XMLHTTP")
SourceCode = oSend.open ("GET",url,falso)
oEnviar.send()
ReadXml=BytesToBstr(oSend.responseBody,código)
start=Instr(ReadXml,iniciar)
ReadXml=meio(ReadXml,início)
ends=Instr(ReadXml,ends)
ReadXml = esquerda (ReadXml, termina-1)
função final
função SubStr(corpo, início, fim)
start=Instr(corpo,início)
SubStr=meio(corpo,início+len(início)+1)
fins = Instr (SubStr, fins)
SubStr = esquerda (SubStr, termina-1)
função final
dim getcont,NewsContent
escurecer URL, título
url=" http://www.***.com"'新闻网址knowsky.com
getcont=ReadXml(url,"gb2312","<table class=k2 border=""0""","</table>")
getcont=RegexHtml(getcont)
dim KeyId,NewsClass,City,Position,HouseType,Level,Area,Price,Demostra
dim ContactMan,Contact
para i=2 para ubound(getcont)
resposta.Write(getcont(i)&"__<br>")
tempLink=mid(getcont(i),instr(getcont(i),"href=""")+6,instr(getcont(i),""" onClick")-10)
tempLink=substituir(tempLink,"../","")
resposta.Write(i&":"&tempLink&"<br>")
NewsContent=ReadXml(tempLink,"gb2312","<td valign=""bottom"" width=""400"">","<hr width=""760"" noshade size=""1"" color= ""#808080""> ")
NewsContent=RemoverHtml(NewsContent)
NewsContent=substituir(NewsContent,VbCrLf,"")
NewsContent=replace(NewsContent,vbNewLine,"")
NewsContent = substituir(NewsContent," ","")
NewsContent = substituir(NewsContent," ","")
NewsContent=replace(NewsContent," ","")
NewsContent=replace(NewsContent,"n","")
NewsContent=substituir(NewsContent,chr(10),"")
NewsContent=substituir(NewsContent,chr(13),"")
'=============== obter conteúdo =======================
resposta.Write(NewsContent)
KeyId=SubStr(NewsContent,"列号:","信息类别:")
NewsClass=SubStr(NewsContent,"类别:","所在城市:")
City=SubStr(NewsContent,"城市:","房屋具体位置:")
Position=SubStr(NewsContent,"位置:","房屋类型:")
HouseType=SubStr(NewsContent,"类型:","楼层:")
Level=SubStr(NewsContent,"楼层:","使用面积:")
Area=SubStr(NewsContent,"面积:","房价:")
Price=SubStr(NewsContent,"房价:","其他说明:")
Demonstração=SubStr(NewsContent,"说明:","联系人:")
ContactMan=SubStr(NewsContent,"联系人:","联系方式:")
Contact=SubStr(NewsContent,"联系方式:","信息来源:")
resposta.Write("总序列号:"&KeyId&"<br>")
resposta.Write("信息类别:"&NewsClass&"<br>")
resposta.Write("所在城市:"&Cidade&"<br>")
resposta.Write("房屋具体位置:"&Posição&"<br>")
resposta.Write("房屋类型:"&HouseType&"<br>")
resposta.Write("楼层:"&Level&"<br>")
resposta.Write("使用面积:"&Área&"<br>")
resposta.Write("房价:"&Price&"<br>")
resposta.Write("其他说明:"&Demostra&"<br>")
resposta.Write("联系人:"&ContactMan&"<br>")
resposta.Write("联系方式:"&Contato&"<br>")
'title=RemoverHTML(aa(i))
'response.Write("título:"&título)
para n = 0 para application.Contents.count
if(application.Contents(n)=KeyId) então
ifexit = verdadeiro
terminar se
próximo
se não, ifexit então
aplicação(tempo&i)=KeyId
'添加到数据库
'================================================ ===
definir rs=server.CreateObject("adodb.recordset")
rs.open "selecione top 1 * da ordem de notícias por id desc",conn,3,3
rs.addnew
rs("NewsClass")=NewsClass
rs("Cidade")=Cidade
rs("Posição")=Posição
rs("TipoCasa")=TipoCasa
rs("Nível")=Nível
rs("Área")=Área
rs("Preço")=Preço
rs("Demonstração")=Demonstração
rs("ContactMan")=ContactMan
rs("Contato")=Contato
rs.atualização
rs.fechar
definir rs = nada
terminar se
'================================================ =
próximo
função RemoveTag (corpo)
Definir regEx = Novo RegExp
regEx.Pattern = "<[a].*?</[a]>"
regEx.IgnoreCase = Verdadeiro
regEx.Global = Verdadeiro
Definir correspondências = regEx.Execute(corpo)
dim i,arr(15),ifexit
eu=0
j=0
Para cada partida nas partidas
TempStr = Correspondência.Valor
TempStr=substituir(TempStr,"<td>","")
TempStr=replace(TempStr,"</td>","")
TempStr=replace(TempStr,"<tr>","")
TempStr=replace(TempStr,"</tr>","")
arr(i)=TempStr
eu=eu+1
se(eu>=15) então
saída para
terminar se
Próximo
Definir regEx = nada
Definir correspondências = nada
RemoverTag=arr
função final
função RegexHtml(corpo)
dim r_arr(47),r_temp
Definir regEx2 = Novo RegExp
regEx2.Pattern ="<a.*?</a>"
regEx2.IgnoreCase = Verdadeiro
regEx2.Global = Verdadeiro
Definir Matches2 = regEx2.Execute(corpo)
iii=0
Para cada partida em Matches2
r_arr(iii)=Correspondência.Valor
iii=iii+1
Próximo
RegexHtml=r_arr
definir regEx2 = nada
definir Matches2 = nada
função final
'================================================ =====
conexão.fechar
definir conn = nada
%>
</body>
</html>
função.asp
<%
'********************************************** *
'函数名: gotTopic
'作 用:截字符串,汉字一个算两个字符,英文算一个字符
'参数:str ----原字符串
' strlen ----截取长度
'返回值:截取后的字符串
'********************************************** *
função gotTopic(str,strlen)
se str="" então
gotTopic=""
função de saída
terminar se
escurecer l,t,c, eu
str=replace(replace(replace(replace(str," "," "),""",chr(34)),">",">"),"<","<" )
str=substituir(str,"?","")
eu=len(str)
t=0
para eu = 1 para eu
c=Abs(Asc(Médio(str,i,1)))
se c>255 então
t=t+2
outro
t=t+1
terminar se
se t>=strlen então
gotTopic=esquerda(str,i) & "…"
saída para
outro
gotTopic=str
terminar se
próximo
gotTopic=replace(replace(replace(replace(gotTopic," "," "),chr(34),"""),">",">"),"<","<" )
função final
'================================================ ========
'Novo:RemoveHTML(strHTML)
'功能:去除HTML标记
'参数:strHTML --要去除HTML标记的字符串
'================================================ ========
Função RemoveHTML(strHTML)
Dim objRegExp, Correspondência, Correspondências
Definir objRegExp = Novo Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = Verdadeiro
'取闭合的<>
objRegExp.Pattern = "<.+?>"
'进行匹配
Definir correspondências = objRegExp.Execute(strHTML)
'
Para cada partida nas partidas
strHtml=Substituir(strHTML,Match.Value,"")
Próximo
RemoverHTML=strHTML
Definir objRegExp = Nada
definir correspondências = nada
Função Final
%>
conexão.asp
<%
'em caso de erro, retome o próximo
definir conn=server.CreateObject("adodb.connection")
con= "driver={Driver do Microsoft Access (*.mdb)};dbq=" & Server.MapPath("stest.mdb")
conn.open com
sub connclose
conexão.fechar
definir conn = nada
final sub
%>
附:抓取信息的详细页面事例
总序列号: | 479280 |
信息类别: | 出租 |
所在城市: | 济南 |
房屋具体位置: | 华龙路华信路交界口 |
房屋类型: | 其他 |
楼层: | 六层 |
使用面积: | 24~240 平方米之间 |
房价: | 0 [租赁:元/月,买卖:万元/套] |
其他说明: | 华信商务楼3至6层小空间对外出租(0,5元/平起), 本楼属纯商务办公投资使用,可用于办公写字间,周边设施齐全、交通便利(37、80、K95在本楼前经过),全产权、市证,楼内设施包括水、电、暖、电梯设施齐全,有意者可电讯! |
联系人: | 鲁、王 |
联系方式: | 88017966、86812217 |
信息来源: | 2005-8-4 8:28:55 来自:218.98.86.175 |
点击次数: | 19 |