多くの友達が泥棒プログラムを理解していませんか?泥棒プログラムが何であるか知っていますか?今日は、ASP AlexaがFoxinの編集者と一緒にクエリThiefプログラムをどのように実装できるかを見てみましょう。実際、この問題は想像したほど難しくありません。
<%
「独創性をサポートするために、ここにコメントを保管してください、ありがとう!
著者:Cao Shangfei
'メインドメイン名を取得します
関数GetDomainurl(URL)
tempurl = cheplage(url、 "http://"、 "")
If strust(tempurl、 "/")> 0 then
tempurl = left(tempurl、instr(tempurl、 "/")-1)
ifを終了します
getdomainurl = tempurl
エンド関数
関数gethttppage(httpurl)
isnull(httpurl)= trueまたはlen(httpurl)<18またはhttpurl = "$ false $" then then
gethttppage = "$ false $"
出口機能
ifを終了します
dim http
http = server.createobject( "msxml2.xmlhttp")を設定します
http.open "get"、httpurl、false
http.send()
http.ReadyState <> 4の場合
http = Nothingを設定します
gethttppage = "$ false $"
出口機能
ifを終了します
gethttppage = http.responsetext
http = Nothingを設定します
err.number <> 0の場合
err.clear
ifを終了します
エンド関数
'========================================================================
'関数名:Scripthtml
'関数:HTMLタグをフィルターします
'Arguments: ConStr -----------------------------------------------------------------------------------------------------------------------
'tagname -------フィルタリングするタグ
'ftype 1は、左ラベルをフィルタリングすることを意味します2は左ラベルをフィルタリングすることを意味し、中央値3は左ラベルと右ラベルをフィルタリングしてコンテンツを保持します。
'========================================================================
functionscripthtml(byval contr、tagname、ftype、includeestr)
dim re
re = new regexpを設定します
re.ignorecase = true
re.global = true
ケースftypeを選択します
ケース1
re.pattern = "<"&tagname& "([^>])*("&includestr& "){1、}([^>])*>"
const = re.replace(connt、 "")
ケース2
re.pattern = "<"&tagname& "([^>])*("&includestr& "){1、}([^>])*>。*?</"&tagname& "([^>])*>"
'Response.Write Const& "<br>"
const = re.replace(connt、 "")
'Response.write server.htmlencode(contr)& "<br>"
ケース3
re.pattern = "<"&tagname& "([^>])*("&includestr& "){1、}([^>])*>"
const = re.replace(connt、 "")
re.pattern = "</"&tagname& "([^>])*>"
const = re.replace(connt、 "")
[選択]を終了します
scripthtml = const
re =何も設定しません
エンド関数
'========================================================================
'関数名:GetBody
'効果:文字列をインターセプトします
'引数:constr-----傍受する文字列
'引数:StartStr ------- Start String
'引数:Overstr ------- End String
'記事:inclul ------- Startstrを含めるかどうか
'記事:confur ---------オーバーストールを含む
'========================================================================
関数getBody(Constr、StartStr、Overstr、inclul、infur)
constr = "$ false $"またはconstring = ""またはisnull(conntr)= trueまたはstartstr = ""またはisnull(startstr)= trueまたはoverstr = ""またはisnull(overstr)= true then
getBody = "$ false $"
出口機能
ifを終了します
Dim Conttemp
薄暗いスタート、オーバー
consttemp = lcase(contr)
startstr = lcase(startstr)
Overstr = lCase(オーバーストール)
start = instrb(1、consttemp、startStr、vbbinaryCompare)
'Response.Write Start& "<br>"&inclul& "<br>"
'Response.End
<= 0を開始する場合
getBody = "$ false $"
出口機能
それ以外
inclul = falseの場合
start = start+lenb(startstr)
ifを終了します
ifを終了します
over = strb(start、consttemp、overstr、vbbinarycompare)
'Response.write over
'Response.End
'Response.Write Start& ""&over& ""&Over-Start
'Response.End
<= 0またはover <= over <= overの場合
getBody = "$ false $"
出口機能
それ以外
confur = trueの場合
オーバー=オーバー+lenb(オーバーストール)
ifを終了します
ifを終了します
getbody = midb(conntl、start、over-start)
'Response.Write GetBody
'Response.End
エンド関数
'========================================================================
'関数名:GetArray
'メソッド:$ array $で区切られたリンクアドレスを抽出します
'引数:制約-------アドレスの元の文字を抽出します
'引数:StartStr ------- Start String
'引数:Overstr ------- End String
'記事:inclul ------- Startstrを含めるかどうか
'記事:confur ---------オーバーストールを含む
'========================================================================
関数getArray(byval contr、startstr、overstr、inclul、inclur)
constr = "$ false $"またはconstring = ""またはisnull(conntr)= trueまたはstartstr = ""またはisnull(startstr)= trueまたはisnull(overstr)= true then
getArray = "$ false $"
出口機能
ifを終了します
Dimpstr、Tempstr2、Objregexp、マッチ、マッチ
tempstr = ""
objregexp = new regexpを設定します
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = "("&startstr& ")。+?("&overstr& ")"
一致を設定= objregexp.execute(contr)
試合の各試合について
tempstr = tempstr& "$ array $"&match.value
次
一致=何も設定しません
tempstr = "" thenの場合
getArray = "$ false $"
出口機能
ifを終了します
tempstr = right(tempstr、len(tempstr)-7)
inclul = falseの場合
objregexp.pattern = startstr
tempstr = objregexp.replace(tempstr、 "")
ifを終了します
confur = falseの場合
objregexp.pattern = overstr
tempstr = objregexp.replace(tempstr、 "")
ifを終了します
objregexp =何も設定しません
一致=何も設定しません
tempstr = "" thenの場合
getArray = "$ false $"
それ以外
getArray = tempstr
ifを終了します
エンド関数
関数getalexarank(webuurl)
tempurl = getdomainurl(wewebll)
'http://client.alexa.com/common/css/scramble.cssでデータを読む
alexacss = "http://client.alexa.com/common/css/scramble.css"
stralexacss = gethttppage(alexacss)
'Response.write stralexacs
'Response.End
alexarankqueryurl = "http://www.alexa.com/data/details/traffic_details/"&tempurl
stralexacontent = gethttppage(alexarankqueryurl)
rankContent = getBody(stralexAcontent、 "Information Service .-->"、 "<! - google_ad_section_end(name = default) - >"、false、false)
'その中のスパンのクラスを取得します
strspan = getArray(rankcontent、 "<span class =" ""、 "" "、false、false)
'Response.write rankcontent& "<br>"
'Response.Write Strspan& "<br>"
'Response.End
strspan <> "$ false $"その後
aspan = split(strspan、 "$ array $")
i = 0からubound(aspan)の場合
'Response.Write "。"&Aspan(i)
'Aspan(i)、つまりSPANのクラスがAlexacssに存在するかどうかを決定します。それが存在する場合、スパンとスパンのデータを削除する必要があります。
If stralexacss、 "。"&aspan(i))> = 1 then
'Response.Write Aspan(i)& "<br>"
'Response.End
'は、プロパティがないことを意味します。交換する必要があります。
rankcontent = scripthtml(rankcontent、 "span"、2、aspan(i))
それ以外
rankcontent = scripthttml(rankcontent、 "span"、1、aspan(i))
ifを終了します
次
'上記の削除が少ない右側のスパンタグを交換します。
rankcontent = cheplage(rankcontent、 "</span>"、 "")
ifを終了します
rankcontent = "$ false $"の場合
rankcontent = "データなし"
ifを終了します
getAlexArank = cheplage(rankcontent、 "、"、 "、")
エンド関数
url = request.querystring( "url")
%>
<form name = "alexaform" method = get>
urlを入力します:<input type = "" name = "url" value = "<%= url%>" size = 40> <input type = "submit" value = "query">
</form>
<%
if url <> "" then
Response.Write「あなたのウェブサイトはAlexaでランク付けされています:」
Response.Flush
rank = getAlexarank(url)
Response.Writeランク
ifを終了します
%>
上記は、ASP AlexaがThiefプログラムを照会する方法についてです。この記事では、比較的単純なAlexa Thiefプログラムを紹介します。この機能が好きな友人は、その原則を学ぶことができます。このプログラムをすぐに書くことができると思います。