Muitos amigos não entendem o programa de ladrões? Você sabe qual é o programa de ladrões? Hoje, vamos dar uma olhada em como o ASP Alexa pode implementar o programa de ladrões de consulta com o editor da Foxin. De fato, esse problema não é tão difícil quanto imaginávamos.
<%
'Para apoiar a originalidade, mantenha os comentários aqui, obrigado!
'Autor: Cao Shangfei
'Obtenha o nome de domínio principal
Função getDomainurl (url)
tempurl = substituir (url, "http: //", "")
Se Instr (tempurl, "/")> 0 então
tempurl = esquerda (tempurl, instrum (tempurl, "/")-1)
final se
getDomainurl = tempurl
Função final
Função gethttppage (httpurl)
Se isnull (httpurl) = true ou len (httpurl) <18 ou httpurl = "$ false $" então
Gethttppage = "$ false $"
Função de saída
Final se
Dim http
Definir http = server.createObject ("msxml2.xmlHttp")
Http.open "get", httpurl, false
Http.send ()
Se http.readyState <> 4 então
Defina http = nada
Gethttppage = "$ false $"
Função de saída
Final se
Gethttppage = http.ResponseTxt
Defina http = nada
Se err.number <> 0 então
Err.clear
Final se
Função final
'=======================================================================
'Nome da função: scripthtml
'Função: filtrar tags html
'Argumentos: Constr -------------------------------------------------------------------------------------------------------------------------
'Tagname ------- tags a serem filtradas
'FTYPE 1 significa filtrar a etiqueta esquerda 2 significa filtrar a etiqueta esquerda e o valor médio 3 significa filtrar a etiqueta esquerda e a etiqueta direita, mantendo o conteúdo.
'=======================================================================
Função scripthtml (Byval Constr, Tagname, FTYPE, incluindo -Incluir)
Dim re
Definir Re = novo regexp
Re.IGNORECASE = true
Re.global = true
Selecione o caso FTYPE
Caso 1
Re.pattern = "<" & tagname & "([^>])*(" & incluí -sest e ") {1,} ([^>])*>"
Construção = re.Replace (construt, "")
Caso 2
Re.pattern = "<" & tagname & "([^>])*(" & incluí -sest e ") {1,} ([^>])*>.*? </" & Tagname & "([^>])*>"
'Response.write construt & "<br>"
Construção = re.Replace (construt, "")
'Response.Write Server.htmlencode (Constr) & "<br>"
Caso 3
Re.pattern = "<" & tagname & "([^>])*(" & incluí -sest e ") {1,} ([^>])*>"
Construção = re.Replace (construt, "")
Re.pattern = "</" & tagname & "([^>])*>"
Construção = re.Replace (construt, "")
Final Selecione
Scripthtml = constr
Definir re = nada
Função final
'=======================================================================
'Nome da função: getbody
'Efeito: interceptar a string
'Argumento: Constr ------- a string a ser interceptada
'Argumentos: StartStr ------ Start String
'Argumentos: Overstr ------- End String
'Artigo: Inclui ------- se deve incluir o startstr
'Artigo: Inclui ------- Inclua Overstr
'=======================================================================
Função getBody (construt, startstr, overstr, incll, inclur)
Se construc = "$ false $" ou constrver = "" ou isnull (construt) = true ou startstr = "" ou isnull (startstr) = true ou overstr = "" ou isnull (overstr) = true então então
GetBody = "$ false $"
Função de saída
Final se
Dim construtemp
Start Dim Start, Over
ConstrTemp = lcase (construt)
Startstr = lcase (startstr)
Overstr = lcase (overstr)
Start = Instrb (1, construtemp, startstr, vbbinarycompare)
'Response.Write Start & "<br>" & Inclul & "<br>"
'Response.end
Se inicializar <= 0 então
GetBody = "$ false $"
Função de saída
Outro
Se incll = false então
Start = start+lenb (startstr)
Final se
Final se
Over = Instrb (Start, ConstrTemp, Overstr, VbBinaryCompare)
'Response.Write Over
'Response.end
'Response.write start & "" & over & "" e over-start
'Response.end
Se mais <= 0 ou over <= iniciar então
GetBody = "$ false $"
Função de saída
Outro
Se inclur = true então
Over = over+lenb (Overstr)
Final se
Final se
GetBody = MIDB (Constr, Start, Over-start)
'Response.Write getbody
'Response.end
Função final
'=======================================================================
'Nome da função: getArray
'Método: extraia o endereço do link, separado por $ Array $
'Argumento: Constr ------- Extrair o personagem original do endereço
'Argumentos: StartStr ------ Start String
'Argumentos: Overstr ------- End String
'Artigo: Inclui ------- se deve incluir o startstr
'Artigo: Inclui ------- Inclua Overstr
'=======================================================================
Function getArray (Byval Constr, Startstr, Overstr, Inclul, Inclui)
Se construc = "$ false $" ou constrver = "" ou isnull (construc) = true ou startstr = "" ou overstr = "" ou isnull (startstr) = true ou isNull (overstr) = true então então
GetArray = "$ false $"
Função de saída
Final se
Dim tempstr, tempstr2, objregexp, correspondências, correspondência
Tempstr = ""
Defina objregexp = novo regexp
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = "(" & startstr & ").+? (" & overstr & ")"
SET MOCHES = objregexp.execute (constr)
Para cada partida em partidas
Tempstr = tempstr & "$ array $" & match.value
Próximo
SET MOCHES = nada
Se tempstr = "" então
GetArray = "$ false $"
Função de saída
Final se
Tempstr = direita (tempstr, len (tempstr) -7)
Se incll = false então
objregexp.pattern = startstr
Tempstr = objregexp.replace (tempstr, "")
Final se
Se inclur = false então
objregexp.pattern = Overstr
Tempstr = objregexp.replace (tempstr, "")
Final se
Defina objregexp = nada
SET MOCHES = nada
Se tempstr = "" então
GetArray = "$ false $"
Outro
GetArray = tempstr
Final se
Função final
Função getalexarank (webuurl)
tempurl = getDomainurl (wewebrl)
'Leia os dados em http://client.alexa.com/common/css/scramble.csss
Alexacss = "http://client.alexa.com/common/css/scramble.css"
stralexacss = gethttppage (Alexacss)
'Response.Write stralexacss
'Response.end
AlexarankQueryurl = "http://www.alexa.com/data/details/traffic_details/" & tempurl
stralexacontent = gethttppage (AlexarankQueryurl)
rankContent = getBody (stralexacontent, "Serviço de informação .-->", "<!-google_ad_section_end (nome = padrão)->", false, false)
'Obtenha a classe do período
strspan = getArray (rankcontent, "<span class =" "", "" ", false, false)
'Response.Write RankContent & "<br>"
'Response.Write strspan & "<br>"
'Response.end
Se strspan <> "$ false $" então
Aspan = Split (Strspan, "$ Array $")
Para i = 0 para ubound (Aspan)
'Response.write "." & Aspan (i)
Determine se aspan (i), ou seja, a classe de extensão existe em Alexacss. Se existir, os dados em span e span precisam ser removidos.
Se Instr (Stralexacss, "." & Aspan (i))> = 1 então
'Response.Write Aspan (i) e "<br>"
'Response.end
'Significa que a propriedade não é nenhuma. Ele precisa ser substituído.
rankContent = scripthtml (rankcontent, "span", 2, aspan (i))
Outro
rankContent = scripthtml (rankcontent, "span", 1, aspan (i))
Final se
Próximo
'Substitua a tag de extensão à direita que é menos removida acima.
rankContent = substituir (rankcontent, "</span>", "")
Final se
Se rankcontent = "$ false $" então
rankcontent = "sem dados"
Final se
getalexarank = substituir (rankcontent, ",", ",")
Função final
url = request.QueryString ("URL")
%>
<name de forma = "Alexaform" Método = get>
Digite o URL: <input type = "" name = "url" value = "<%= url%>" size = 40> <input type = "submit" value = "query">
</morm>
<%
Se url <> "" então
Response.Write "Seu site é classificado em Alexa como:"
Response.flush
rank = getalexarank (url)
Response.Write Rank
Final se
%>
O exposto acima é sobre como o ASP Alexa pode consultar o programa de ladrões. Este artigo apresenta um programa relativamente simples do Alexa Thief. Amigos que gostam dessa função podem aprender seus princípios. Eu acredito que você pode escrever este programa em breve.