Cet article présente principalement à Asp l'utilisation de Microsoft.XMLHTTP pour explorer le contenu Web (sans caractères tronqués) et filtrer le contenu requis.
Asp utilise Microsoft.XMLHTTP pour explorer le contenu des pages Web (pas de code tronqué) et filtrer le contenu requis
Exemple de code source :
Copiez le code comme suit :
<%
Dim xmlUrl, http, strHTML, strBody
xmlUrl = Request.QueryString("u")
REM lit la source XML de manière asynchrone
Définir http = server.CreateObject("Microsoft.XMLHTTP")
http.Ouvrez "POST", xmlUrl, false
http.setrequestheader "User-Agent", "Mozilla/4.0"
http.setrequestheader "Connexion", "Keep-Alive"
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.Envoyer()
strHTML = BytesToBstr(http.ResponseBody)
définir http = rien
REM capture le contenu principal
strBody = GetBody(strHTML,"<divDiv_newsContentc""cnt"">","</div>",0,0)
strBody =Replace(strBody,"(Cet article a été publié pour la première fois dans ","")
strBody =Replace(strBody,"Wealth Power Network</a>, veuillez indiquer la source de la réimpression.)","")
strBody =Replace(strBody,"Cet article a été publié pour la première fois dans, veuillez indiquer la source lors de la réimpression.)","")
strBody =Remplacer(strBody,"Réseau de puissance de richesse</a>:","")
strBody =Replace(strBody,"Cet article a été publié pour la première fois dans","")
Réponse.Write RegRemoveHref(strBody)
REM récupère le HTML de la réponse URL correspondante
Fonction BytesToBstr(corps)
objstream obscur
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Ouvrir
objstream.Écrire le corps
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "UTF-8"
'Convertissez l'encodage UTF-8 par défaut d'origine en encodage GB2312, sinon utilisez-le directement
'XMLHTTP obtiendra un code tronqué lors de l'appel d'une page Web contenant des caractères chinois.
BytesToBstr = objstream.ReadText
objstream.Fermer
définir objstream = rien
Fonction de fin
REM utilise des expressions régulières pour capturer le contenu marqué à l'intérieur
Fonction GetBody(ConStr,StartStr,OverStr,IncluL,IncluR)
Si ConStr="$False$" ou ConStr="" ou IsNull(ConStr)=True Ou StartStr="" ou IsNull(StartStr)=True Ou OverStr="" ou IsNull(OverStr)=True Alors
GetBody="$Faux$"
Fonction de sortie
Fin si
DimConStrTemp
Dim Début, Fin
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
SurStr=Lcase(SurStr)
Début = InStrB (1, ConStrTemp, StartStr, vbBinaryCompare)
Si Début <=0 alors
GetBody="$Faux$"
Fonction de sortie
Autre
Si IncluL=False Alors
Début=Début+LenB(StartStr)
Fin si
Fin si
Over=InStrB(Démarrer,ConStrTemp,OverStr,vbBinaryCompare)
Si Over<=0 ou Over<=Start alors
GetBody="$Faux$"
Fonction de sortie
Autre
Si InclR=Vrai Alors
Sur=Sur+LenB(SurStr)
Fin si
Fin si
GetBody = MidB (ConStr, Start, Over-Start)
Fonction de fin
REM filtre un lien hypertexte
Fonction RegRemoveHref(HTMLstr)
Définir ra = Nouvelle RegExp
ra.IgnoreCase = Vrai
ra.Global = Vrai
ra.Pattern = "<a[^>]+>(.+?)</a>"
RegRemoveHref = Remplacer(ra.replace(HTMLstr,"$1"),"href=""http://www.927953.com""","")
Fonction FIN
%>
Les rendus sont les suivants :