In diesem Artikel wird hauptsächlich die Verwendung von Microsoft.XMLHTTP durch Asp zum Crawlen von Webinhalten (keine verstümmelten Zeichen) und zum Filtern der erforderlichen Inhalte vorgestellt
Asp verwendet Microsoft.XMLHTTP, um Webseiteninhalte zu crawlen (kein verstümmelter Code) und den erforderlichen Inhalt zu filtern
Beispielquellcode:
Kopieren Sie den Codecode wie folgt:
<%
Dimmen Sie xmlUrl,http,strHTML,strBody
xmlUrl = Request.QueryString("u")
REM liest die XML-Quelle asynchron
Setze http = server.CreateObject("Microsoft.XMLHTTP")
http.Öffnen Sie „POST“,xmlUrl,false
http.setrequestheader „User-Agent“, „Mozilla/4.0“
http.setrequestheader „Verbindung“, „Keep-Alive“
http.setRequestHeader „Content-Type“, „application/x-www-form-urlencoded“
http.Send()
strHTML = BytesToBstr(http.ResponseBody)
setze http = nichts
REM erfasst den Hauptinhalt
strBody = GetBody(strHTML,"<divDiv_newsContentc""cnt"">","</div>",0,0)
strBody =Replace(strBody,"(Dieser Artikel wurde erstmals veröffentlicht in ","")
strBody =Replace(strBody,"Wealth Power Network</a>, bitte geben Sie die Quelle für den Nachdruck an.)","")
strBody =Replace(strBody,"Dieser Artikel wurde erstmals veröffentlicht in, bitte geben Sie beim Nachdruck die Quelle an.)","")
strBody =Replace(strBody,"Wealth Power Network</a>:","")
strBody =Replace(strBody,"Dieser Artikel wurde erstmals veröffentlicht in",")
Response.Write RegRemoveHref(strBody)
REM ruft den HTML-Code der entsprechenden URL-Antwort ab
Funktion BytesToBstr(body)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Öffnen
objstream.Text schreiben
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "UTF-8"
„Konvertieren Sie die ursprüngliche Standard-UTF-8-Kodierung in die GB2312-Kodierung, andernfalls verwenden Sie sie direkt.“
„XMLHTTP erhält verstümmelten Code, wenn eine Webseite mit chinesischen Schriftzeichen aufgerufen wird.
BytesToBstr = objstream.ReadText
objstream.Schließen
set objstream = nichts
Funktion beenden
REM verwendet reguläre Ausdrücke, um den darin markierten Inhalt zu erfassen
Funktion GetBody(ConStr,StartStr,OverStr,IncluL,IncluR)
Wenn ConStr="$False$" oder ConStr="" oder IsNull(ConStr)=True oder StartStr="" oder IsNull(StartStr)=True oder OverStr="" oder IsNull(OverStr)=True, dann
GetBody="$False$"
Exit-Funktion
Ende wenn
DimConStrTemp
Dim Start, Over
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
OverStr=Lcase(OverStr)
Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)
Wenn Start<=0 dann
GetBody="$False$"
Exit-Funktion
Anders
Wenn IncluL=False, dann
Start=Start+LenB(StartStr)
Ende wenn
Ende wenn
Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)
Wenn Over<=0 oder Over<=Start dann
GetBody="$False$"
Exit-Funktion
Anders
Wenn InclR=True, dann
Over=Over+LenB(OverStr)
Ende wenn
Ende wenn
GetBody=MidB(ConStr,Start,Over-Start)
Funktion beenden
REM filtert einen Hyperlink
Funktion RegRemoveHref(HTMLstr)
Setze ra = Neuer RegExp
ra.IgnoreCase = True
ra.Global = True
ra.Pattern = "<a[^>]+>(.+?)</a>"
RegRemoveHref = Replacement(ra.replace(HTMLstr,"$1"),"href=""http://www.927953.com""","")
END-Funktion
%>
Die Darstellungen lauten wie folgt: