Exemple d'analyse du début de la collecte du principe de collecte asp
La première étape consiste à analyser les pages que vous souhaitez capturer.
Utilisez un navigateur pour ouvrir la page que vous souhaitez collecter (comme : http://sports.sina.com.cn/k/2008-09-15/04593948756.shtml, vous pouvez également utiliser d'autres pages après ouverture). cliquez avec le bouton droit pour afficher le fichier source.
La deuxième étape consiste à trouver la localisation du contenu à collecter.
Si je souhaite collecter le titre et l'emplacement du contenu de cette page :
Le titre est compris entre <h1 id=artibodyTitle style=color:#03005C;> et </h1>
Le contenu est compris entre <!-- Début du contenu du texte --> Et <!-- Fin du contenu du texte -->
Faites attention au caractère unique de l'emplacement. Après l'avoir trouvé, vous pouvez utiliser la recherche dans l'édition pour voir s'il est unique. Sinon, essayez d'être le premier. Si cela ne fonctionne toujours pas. , vous ne pouvez que le remplacer.
La troisième étape consiste à écrire du code
Copiez le code comme suit :
<%
'Fonction : code de collecte asp
'Auteur : Wangsdong
'Remarques : Supportez les programmes originaux, veuillez conserver ces informations, merci
url=http://sports.sina.com.cn/k/2008-09-15/04593948756.shtml
str=getHTTPage(url)
title=strcut(str,<h1 id=artibodyTitle style=color:#03005C;>,</h1>,2)
content=strcut(str,<!-- Début du contenu du texte -->,<!-- Fin du contenu du texte -->,2)
réponse.écrire le titre de l'actualité<br><b>&titre&</b><br><br><br>contenu de l'actualité :<br>&contenu
Fonction getHTTPPage(url)
En cas d'erreur, reprendre ensuite
atténué http
définir http=Serveur.createobject(Microsoft.XMLHTTP)
Http.open GET,url,false
Http.envoyer()
si Http.readystate<>4 alors
fonction de sortie
finir si
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
définir http = rien
Si NuméroErr.<>0 alors
Response.Write <p align='center'><font color='red'><b>Le serveur a une erreur lors de l'obtention du contenu du fichier</b></font></p>
Err.Effacer
Fin si
Fonction de fin
Fonction BytesToBstr(corps,Cset)
objstream obscur
définir 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 = Cset
BytesToBstr = objstream.ReadText
objstream.Fermer
définir objstream = rien
Fonction de fin
'Intercepter la chaîne, 1. en incluant les caractères de début et de fin, 2. en excluant
Fonction strCut(strContent,StartStr,EndStr,CutType)
Dim strHtml,S1,S2
strHtml = strContenu
En cas d'erreur, reprendre ensuite
Sélectionnez le type de coupe de cas
Cas 1
S1 = InStr(strHtml,StartStr)
S2 = InStr(S1,strHtml,EndStr)+Len(EndStr)
Cas 2
S1 = InStr(strHtml,StartStr)+Len(StartStr)
S2 = InStr(S1,strHtml,EndStr)
Fin de la sélection
Si erreur alors
strCute = <p align='center'>Le contenu requis n'a pas été trouvé. </p>
Err.Effacer
Fonction de sortie
Autre
strCut = Milieu(strHtml,S1,S2-S1)
Fin si
Fonction de fin
%>
C'est tout. Je vais afficher le contenu obtenu maintenant, et vous pourrez écrire le contenu dans la base de données, afin que les données vous appartiennent.