Est-ce que beaucoup d'amis ne comprennent pas le programme de voleurs? Savez-vous quel est le programme de voleurs? Aujourd'hui, jetons un coup d'œil à la façon dont ASP Alexa peut mettre en œuvre le programme de voleurs de requête avec le rédacteur en chef de Foxin. En fait, ce problème n'est pas aussi difficile que nous l'imaginons.
<%
«Pour soutenir l'originalité, veuillez garder les commentaires ici, merci!
'Auteur: Cao Shangfei
'Obtenez le nom de domaine principal
Fonction getDomainurl (URL)
tempurl = remplacer (URL, "http: //", "")
Si instr (tempurl, "/")> 0 alors
tempurl = gauche (tempurl, instr (tempurl, "/") - 1)
terminer si
getDomainurl = tempurl
Fonction finale
Fonction gethttppage (httpurl)
Si isNull (httpurl) = true ou len (httpurl) <18 ou httpurl = "$ false $" alors
Gethttppage = "$ false $"
Fonction de sortie
Terminer si
DIM HTTP
Set http = server.createObject ("msxml2.xmlhttp")
Http.open "get", httpurl, false
Http.send ()
Si http.readystate <> 4 alors
Définir http = rien
Gethttppage = "$ false $"
Fonction de sortie
Terminer si
Gethttppage = http.ResponSeText
Définir http = rien
Si err.number <> 0 alors
Err.Clear
Terminer si
Fonction finale
'============================================================.
'Nom de la fonction: scripthtml
'Fonction: Filtrez des balises HTML
'Arguments: CONSTR -------------------------------------------------------------------------------------------------------------------
'Tagname ------- Tags à filtrer
«FTYPE 1 signifie filtrage de l'étiquette gauche 2 signifie filtrer l'étiquette gauche et la valeur moyenne 3 signifie filtrage de l'étiquette gauche et de l'étiquette droite, en conservant le contenu.
'============================================================.
Fonction scripthtml (byval const, tagname, fType, includestr)
Dim re
Définir Re = nouveau regexp
Re.ignorecase = true
Re.global = true
Sélectionnez Case FTYPE
Cas 1
Re.Pattern = "<" & tagname & "([^>]) * (" & includestr & ") {1,} ([^>]) *>"
Contr = Re.replace (Contr, "")
Cas 2
Re.pattern = "<" & tagname & "([^>]) * (" & includestr & ") {1,} ([^>]) *>. *? </" & Tagname & "([^>]) *>"
'Response.write Contr & "<br>"
Contr = Re.replace (Contr, "")
'Response.write Server.htmLencode (CONSTR) & "<br>"
Cas 3
Re.Pattern = "<" & tagname & "([^>]) * (" & includestr & ") {1,} ([^>]) *>"
Contr = Re.replace (Contr, "")
Re.Pattern = "</" & tagname & "([^>]) *>"
Contr = Re.replace (Contr, "")
Fin de sélection
Scripthtml = CONSTRAL
Définir RE = rien
Fonction finale
'============================================================.
'Nom de la fonction: getbody
'Effet: intercepter la chaîne
'Argument: Contr ------- La chaîne à intercepter
'Arguments: Startstr ------ Démarrer la chaîne
'Arguments: Overstr ------- String de fin
'Article: Inclul ------- SI doit inclure Startstr
'Article: inclin --------- Inclure Overstr
'============================================================.
Fonction getbody (CONSTR, startstr, oversstr, incul, incluc)
Si CONST = "$ false $" ou CONST = "" ou ISNULL (CONST) = true ou startStr = "" ou isNull (startstr) = true ou overstr = "" ou isNull (overstr) = true alors
Getbody = "$ false $"
Fonction de sortie
Terminer si
Talent
Démarrage dim, fini
ContrTemp = LCase (CONFR)
Startstr = lcase (startstr)
Overstr = LCase (Overstr)
Start = instrb (1, ContrTemp, startstr, vbbinaryCompare)
'Response.write start & "<br>" & incul & "<br>"
'Response.end
Si démarrer <= 0 alors
Getbody = "$ false $"
Fonction de sortie
Autre
Si incul = false alors
Start = start + lenb (startstr)
Terminer si
Terminer si
Over = instrb (start, ContrTemp, oversstr, vbbinaryCompare)
'Réponse.Write sur
'Response.end
'Response.write start & "" & over & "" & over-start
'Response.end
Si plus <= 0 ou plus <= Démarrez alors
Getbody = "$ false $"
Fonction de sortie
Autre
Si inclur = true alors
Over = over + lenb (oversstr)
Terminer si
Terminer si
Getbody = midb (contrat, start, over-start)
'Response.Write Getbody
'Response.end
Fonction finale
'============================================================.
'Nom de la fonction: getArray
«Méthode: extraire l'adresse de liaison, séparée par $ array $
'Argument: Contr ------- Extraire le caractère d'origine de l'adresse
'Arguments: Startstr ------ Démarrer la chaîne
'Arguments: Overstr ------- String de fin
'Article: Inclul ------- SI doit inclure Startstr
'Article: inclin --------- Inclure Overstr
'============================================================.
Fonction GetArray (Byval Contrac, Startstr, Overstr, Inclul, Inclur)
Si CONST = "$ false $" ou const = "" ou isNull (Contr) = true ou startstr = "" ou overstr = "" ou isNull (startstr) = true ou isNull (overstr) = true alors
GetArray = "$ false $"
Fonction de sortie
Terminer si
DIM TEMPSTR, TEMPSTR2, OBJREGEXP, MATCHES, MATCH
Temptr = ""
Définir objregexp = new regexp
objregexp.ignorecase = true
objregexp.global = true
objregexp.Pattern = "(" & startstr & "). +? (" & oversstr & ")"
Set Matchs = objregexp.execcute (CONFR)
Pour chaque match dans les matchs
TEMPSTR = TEMPSTR & "$ Array $" & Match.Value
Suivant
Set Matchs = Rien
Si temptr = "" alors
GetArray = "$ false $"
Fonction de sortie
Terminer si
Temptr = à droite (Temptr, Len (Temptr) -7)
Si incul = false alors
objregexp.Pattern = startstr
Temptr = objregexp.replace (Temptr, "")
Terminer si
Si inclur = false alors
objregexp.Pattern = Overstr
Temptr = objregexp.replace (Temptr, "")
Terminer si
Définir objregexp = rien
Set Matchs = Rien
Si temptr = "" alors
GetArray = "$ false $"
Autre
GetArray = Temptr
Terminer si
Fonction finale
Fonction getalexarank (webuurl)
tempurl = getDomainurl (wewebl)
'Lisez les données dans http://client.alexa.com/common/css/scramble.css
alexacss = "http://client.alexa.com/common/css/scramble.css"
Stralexacss = GethTTPPAGE (Alexacss)
'Réponse.Write Stralexacsss
'Response.end
AlexarankQueryUrl = "http://www.alexa.com/data/details/traffic_details/" & tempurl
Stralexacontent = Gethttppage (AlexarankQueryurl)
RankContent = getBody (strAreXacontent, "Information Service .-->", "<! - Google_ad_section_end (name = default) ->", false, false)
'Obtenez la classe de la durée
strspan = getArray (RankContent, "<span class =" "", "" "", false, false)
'Response.Write RankContent & "<br>"
'Response.Write Strspan & "<br>"
'Response.end
Si strspan <> "$ false $" alors
Aspan = Split (Strspan, "$ array $")
Pour i = 0 à Ubound (Aspan)
'Response.write "." & Aspan (i)
«Déterminez si Aspan (i), c'est-à-dire que la classe de Span existe dans Alexacss. S'il existe, les données de Span et de Span doivent être supprimées.
Si instlin (stralexacss, "." & Aspan (i))> = 1 alors
'Response.write aspan (i) & "<br>"
'Response.end
«signifie que la propriété n'est pas. Il doit être remplacé.
RANKCONTENT = ScripthTML (RankContent, "Span", 2, Aspan (I))
Autre
RankContent = ScripthTML (RankContent, "Span", 1, Aspan (i))
Terminer si
Suivant
«Remplacez l'étiquette de portée à droite qui est moins supprimée ci-dessus.
RANKCONTENT = Remplacer (RankContent, "</span>", "")
Terminer si
Si RankContent = "$ false $" alors
rankContent = "pas de données"
Terminer si
getAlexarank = remplacer (RankContent, ",", ",")
Fonction finale
url = request.querystring ("url")
%>
<form name = "alexaform" méthode = get>
Entrez l'URL: <input type = "" name = "url" value = "<% = url%>" size = 40> <input type = "soumi" value = "query">
</ form>
<%
Si url <> "" alors
Response.Write "Votre site Web se classe à Alexa en tant que:"
réponse.flush
rang = getalexarank (URL)
Response.WRITE RANG
Terminer si
%>
Ce qui précède concerne la façon dont ASP Alexa peut interroger le programme de voleurs. Cet article présente un programme Alexa Thief relativement simple. Les amis qui aiment cette fonction peuvent apprendre ses principes. Je crois que vous pouvez bientôt écrire ce programme.