¿Muchos amigos no entienden el programa Thief? ¿Sabes cuál es el programa Thief? Hoy, echemos un vistazo a cómo ASP Alexa puede implementar el programa de Thief de consultas con el editor de Foxin. De hecho, este problema no es tan difícil como imaginamos.
<%
'Para apoyar la originalidad, mantenga los comentarios aquí, ¡gracias!
'Autor: Cao Shangfei
'Obtenga el nombre de dominio principal
Función getDomainUrl (URL)
tempurl = reemplazar (url, "http: //", "")
if instrer (tempurl, "/")> 0 entonces
tempurl = izquierda (tempurl, instr (tempurl, "/")-1)
final si
getDomainUrl = Tempurl
Función final
Función gethttppage (httpurl)
If isnull (httpurl) = true o len (httpurl) <18 o httpurl = "$ falso $" entonces
Gethttppage = "$ falso $"
Función de salida
Final si
Dim http
Establecer http = server.createObject ("msxml2.xmlhttp")
Http.open "get", httpurl, falso
Http.send ()
Si http.readyState <> 4 entonces entonces
Establecer http = nada
Gethttppage = "$ falso $"
Función de salida
Final si
Gethttppage = http.Apponsetext
Establecer http = nada
Si err.number <> 0 entonces
Err.Clear
Final si
Función final
'=========================================================================
'Nombre de la función: scripttml
'Función: filtro de etiquetas HTML
'Argumentos: Construcción -------------------------------------------------------------------------------------------------------------------
'TagName ------- Etiquetas para ser filtradas
'FTYPE 1 significa filtrar la etiqueta izquierda 2 significa filtrar la etiqueta izquierda y el valor medio 3 significa filtrar la etiqueta izquierda y la etiqueta derecha, reteniendo el contenido.
'=========================================================================
Función scripttml (Byval Constr, TagName, FTYPE, incluido)
Atenuar
Establecer re = nuevo regexp
Re.ignorecase = True
Re.global = verdadero
Seleccionar el caso FTYPE
Caso 1
Re.pattern = "<" & tagname & "([^>])*(" & includestrem & ") {1,} ([^>])*>"
Constr = re.replace (construye "")
Caso 2
Re.pattern = "<" & tagname & "([^>])*(" & includestr & ") {1,} ([^>])*>.*? </" & TagName & "([^>])*>"
'Response.Write Constr & "<br>"
Constr = re.replace (construye "")
'Response.write Server.htmlencode (construida) y "<br>"
Caso 3
Re.pattern = "<" & tagname & "([^>])*(" & includestrem & ") {1,} ([^>])*>"
Constr = re.replace (construye "")
Re.pattern = "</" & tagName & "([^>])*>"
Constr = re.replace (construye "")
Final seleccionar
Scripttml = construye
Establecer re = nada
Función final
'=========================================================================
'Nombre de la función: GetBody
'Efecto: interceptar la cadena
'Argumento: construye ------- La cadena a interceptar
'Argumentos: Startstr ------ Start String
'Argumentos: Overstr ------- End String
'Artículo: inclul ------- si se debe incluir Startstr
'Artículo: inclurar --------- Incluya sobrestrucción
'=========================================================================
Función getBody (construye, startstr, overstr, inclul, inclens)
If constr = "$ false $" o constr = "" o isnull (construT) = true o startstr = "" o isNull (startstr) = true o overstr = "" o isnull (overstr) = true entonces
GetBody = "$ falso $"
Función de salida
Final si
Dim ConstrTemp
Comienzo atenúa, sobre
ConstrTemp = lcase (Constr)
Startstr = lcase (startstr)
Overstr = lcase (Overstr)
Start = instrb (1, constructtemp, startstr, vbbinaryCompare)
'Response.Write Start & "<br>" & inclul & "<br>"
'Respuesta.
Si comienza <= 0 entonces
GetBody = "$ falso $"
Función de salida
Demás
Si inclul = falso entonces
Start = Start+LENB (Startstr)
Final si
Final si
Over = InstrB (Start, ConstrTemp, Overstr, VBBinaryCompare)
'Respuesta. Escribe sobre
'Respuesta.
'Response.Write Start & "" & Over & "" & Over-start
'Respuesta.
Si es superior <= 0 o exage <= inicio entonces
GetBody = "$ falso $"
Función de salida
Demás
Si inclur = verdadero entonces
Over = Over+LENB (Overstr)
Final si
Final si
GetBody = Midb (construye, inicio, exagerar)
'Response.Write GetBody
'Respuesta.
Función final
'=========================================================================
'Nombre de la función: GetArray
'Método: extraiga la dirección de enlace, separada por $ array $
'Argumento: construye ------- Extraer el carácter original de la dirección
'Argumentos: Startstr ------ Start String
'Argumentos: Overstr ------- End String
'Artículo: inclul ------- si se debe incluir Startstr
'Artículo: inclurar --------- Incluya sobrestrucción
'=========================================================================
Función GetArray (Byval Constr, Startstr, Overstr, inclul, inclurado)
If constr = "$ false $" o constr = "" o isnull (construT) = true o startstr = "" o overstr = "" o isNull (startstr) = true o isnull (overstr) = true entonces
GetArray = "$ falso $"
Función de salida
Final si
Dim Temptr, Temptr2, objregexp, coincidencias, coincidencia
Tempttr = ""
Establecer objregexp = new Regexp
objegexp.ignorecase = True
objregexp.global = verdadero
objregexp.pattern = "(" & startstr & ").+? (" & overstr & ")"
Establecer coincidencias = objegexp.execute (construT)
Para cada partido en partidos
Tempttr = temptrtr & "$ array $" & match.Value
Próximo
Establecer coincidencias = nada
Si tempstr = "" entonces
GetArray = "$ falso $"
Función de salida
Final si
Tempttr = right (temptr, len (temptr) -7)
Si inclul = falso entonces
objregexp.pattern = startstr
Tempttr = objegexp.replace (tempttr, "")
Final si
Si inclurar = falso entonces
objregexp.pattern =
Tempttr = objegexp.replace (tempttr, "")
Final si
Establecer objregexp = nada
Establecer coincidencias = nada
Si tempstr = "" entonces
GetArray = "$ falso $"
Demás
GetArray = tempttr
Final si
Función final
Función getAlexarank (webuurl)
tempurl = getDomainUrl (Wewebrl)
'Lea los datos en http://client.alexa.com/common/css/scramble.css
Alexacss = "http://client.alexa.com/common/css/scramble.css"
Stralexacss = Gethttppage (Alexacss)
'Respuesta. Escribe a Stralexacss
'Respuesta.
AlexarankQueryurl = "http://www.alexa.com/data/details/traffic_details/" & Tempurl
StralExAcontent = Gethttppage (AlexarankqueryUrl)
rankContent = getBody (StralExAcontent, "Servicio de información .-->", "<!-Google_ad_section_end (name = default)->", falso, falso)
'Obtén la clase del tramo en él
strspan = getArray (rankContent, "<span class =" "", "" "", falso, falso)
'Response.Write RankContent y "<br>"
'Response.write strspan y "<br>"
'Respuesta.
Si strspan <> "$ false $" entonces
aspan = split (strspan, "$ array $")
Para i = 0 a Ubound (Aspan)
'Response.write "." & Aspan (i)
'Determine si Aspan (i), es decir, la clase de span existe en Alexacss. Si existe, los datos en el tramo y el tramo deben eliminarse.
Si instrer (Stralexacss, "." & Aspan (i))> = 1 entonces
'Response.Write Aspan (i) y "<br>"
'Respuesta.
'significa que la propiedad es ninguna. Necesita ser reemplazado.
RankContent = ScripThtml (RankContent, "Span", 2, Aspan (i))
Demás
RankContent = ScripThtml (RankContent, "Span", 1, Aspan (i))
Final si
Próximo
'Reemplace la etiqueta del tramo a la derecha que se elimina menos arriba.
rankContent = reemplazar (RankContent, "</span>", "")
Final si
If rankContent = "$ false $" entonces
RankContent = "No hay datos"
Final si
getAlexarank = reemplazar (rankContent, ",", ",")
Función final
url = request.querystring ("url")
%>
<form de nombre = "alexaform" método = get>
Ingrese la URL: <input type = "" name = "url" value = "<%= url%>" size = 40> <input type = "subt" value = "QUERY">
</form>
<%
Si url <> "" entonces
Response.swite "Su sitio web se ubica en Alexa como:"
respuesta. Flush
rank = getAlexarank (URL)
Respuesta. Rango de escritura
Final si
%>
Lo anterior se trata de cómo ASP Alexa puede consultar el programa Thief. Este artículo presenta un programa relativamente simple de Alexa Thief. Los amigos que les gusta esta función pueden aprender sus principios. Creo que puedes escribir este programa pronto.