Apakah banyak teman tidak memahami program pencuri? Tahukah Anda apa program pencuri itu? Hari ini, mari kita lihat bagaimana ASP Alexa dapat mengimplementasikan program pencuri kueri dengan editor Foxin. Bahkan, masalah ini tidak sesulit yang kita bayangkan.
<%
'Untuk mendukung orisinalitas, harap simpan komentar di sini, terima kasih!
'Penulis: Cao Shangfei
'Dapatkan nama domain utama
Function getDomainUrl (URL)
tempurl = ganti (url, "http: //", "")
if instr (tempurl, "/")> 0 lalu
tempurl = kiri (tempurl, instr (tempurl, "/")-1)
akhiri jika
getDomainUrl = tempurl
Fungsi akhir
Fungsi getHttppage (httpurl)
If isNull (httpurl) = true atau len (httpurl) <18 atau httpurl = "$ false $" lalu
GetHttppage = "$ false $"
Fungsi keluar
Akhiri jika
Redup http
Setel http = server.CreateObject ("msxml2.xmlhttp")
Http.open "get", httpurl, false
Http.send ()
Jika http.readystate <> 4 lalu
Atur http = tidak ada
GetHttppage = "$ false $"
Fungsi keluar
Akhiri jika
GetHttppage = http.Responsetext
Atur http = tidak ada
Jika err.number <> 0 lalu
Err.clear
Akhiri jika
Fungsi akhir
'======================================================================
'Nama Fungsi: ScripThtml
'Fungsi: Filter Tag HTML
'Argumen: Constr -------------------------------------------------------------------------------------------------------------------
'Tagname ------- tag yang akan difilter
'FType 1 berarti memfilter label kiri 2 berarti memfilter label kiri dan nilai tengah 3 berarti memfilter label kiri dan label kanan, mempertahankan konten.
'======================================================================
Fungsi Scripthtml (ByVal Constr, Tagname, FType, IncludeStr)
Redup re
Setel RE = RegExp baru
Re.ignorecase = true
Re.global = true
Pilih case ftype
Kasus 1
Re.pattern = "<" & tagname & "([^>])*(" & inclowestr & ") {1,} ([^>])*>"
Constr = re.replace (Constr, "")
Kasus 2
Re.pattern = "<" & tagname & "([^>])*(" & includestr & ") {1,} ([^>])*>.*? </" & Tagname & "([^>])*>"
'Response.write Constr & "<br>"
Constr = re.replace (Constr, "")
'Response.Write server.htmlencode (CONSPER) & "<BR>"
Kasus 3
Re.pattern = "<" & tagname & "([^>])*(" & inclowestr & ") {1,} ([^>])*>"
Constr = re.replace (Constr, "")
Re.pattern = "</" & tagname & "([^>])*>"
Constr = re.replace (Constr, "")
Akhiri Pilih
Scripthtml = Constr
Atur re = tidak ada
Fungsi akhir
'======================================================================
'Nama fungsi: getbody
'Efek: mencegat string
'Argumen: konstr ------- string yang akan dicegat
'Argumen: StartStr ------ Mulai String
'Argumen: Overstr ------- String Akhir
'Artikel: Inclul ------- apakah akan memasukkan startStr
Artikel: Inclur --------- Sertakan Overstr
'======================================================================
Fungsi getbody (constr, startstr, overstr, inclul, inclur)
Jika constr = "$ false $" atau constr = "" atau isnull (constr) = true atau startStr = "" atau isNull (startStr) = true atau overstr = "" atau isnull (overstr) = true kemudian
Getbody = "$ false $"
Fungsi keluar
Akhiri jika
Dim Constrtemp
Mulai redup, lebih
Constrtemp = LCase (Constr)
Startstr = lcase (startStr)
Overstr = LCase (Overstr)
Start = instrb (1, constrtemp, startStr, vbinaryCompare)
'Response.write Start & "<br>" & inclul & "<br>"
'Response.end
Jika Mulai <= 0 lalu
Getbody = "$ false $"
Fungsi keluar
Kalau tidak
Jika dimasukkan = false maka
Start = start+lenb (startStr)
Akhiri jika
Akhiri jika
Over = instrb (start, constrtemp, overstr, vbinarycompare)
'Response.write over
'Response.end
'Response.write Start & "" & over & "" & OVERMAN
'Response.end
Jika lebih <= 0 atau lebih <= Mulai lalu
Getbody = "$ false $"
Fungsi keluar
Kalau tidak
Jika inclur = true maka
Over = over+lenb (overstr)
Akhiri jika
Akhiri jika
Getbody = midb (constr, start, over-start)
'Response.write getbody
'Response.end
Fungsi akhir
'======================================================================
'Nama fungsi: GetArray
'Metode: Ekstrak alamat tautan, dipisahkan oleh $ array $
'Argumen: Constr ------- Ekstrak karakter asli dari alamat tersebut
'Argumen: StartStr ------ Mulai String
'Argumen: Overstr ------- String Akhir
'Artikel: Inclul ------- apakah akan memasukkan startStr
Artikel: Inclur --------- Sertakan Overstr
'======================================================================
Fungsi getArray (Byval Constr, StartStr, Overstr, Inclul, Inclur)
Jika constr = "$ false $" atau constr = "" atau isnull (constr) = true atau startStr = "" atau overstr = "" atau isnull (startStr) = true atau isnull (overstr) = true kemudian
GetArray = "$ false $"
Fungsi keluar
Akhiri jika
Redup tempstr, tempstr2, objregexp, pertandingan, pertandingan
Tempstr = ""
Atur objregexp = regexp baru
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = "(" & startstr & ").+? (" & Overtr & ")"
Set kecocokan = objregexp.execute (constr)
Untuk setiap pertandingan dalam pertandingan
Tempstr = Tempstr & "$ Array $" & Match.Value
Berikutnya
Setel kecocokan = tidak ada
Jika tempstr = "" lalu
GetArray = "$ false $"
Fungsi keluar
Akhiri jika
Tempstr = kanan (tempstr, len (tempstr) -7)
Jika dimasukkan = false maka
objregexp.pattern = startStr
Tempstr = objregexp.replace (tempstr, "")
Akhiri jika
Jika inclur = false maka
objregexp.pattern = overstr
Tempstr = objregexp.replace (tempstr, "")
Akhiri jika
Setel objregexp = tidak ada
Setel kecocokan = tidak ada
Jika tempstr = "" lalu
GetArray = "$ false $"
Kalau tidak
GetArray = tempstr
Akhiri jika
Fungsi akhir
Fungsi getalexarg (WebUurl)
Tempurl = getDomainUrl (WEWEBRL)
'Baca data di http://client.alexa.com/common/css/scramble.css
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, "layanan informasi .-->", "<!-google_ad_section_end (name = default)->", false, false)
'Dapatkan kelas rentang di dalamnya
strspan = getArray (rankcontent, "<span class =" "", "" "", false, false)
'Response.Write RankContent & "<br>"
'Response.write Strspan & "<br>"
'Response.end
Jika strspan <> "$ false $" maka
aspan = split (strspan, "$ array $")
Untuk i = 0 ke ubound (aspan)
'Response.write "." & Aspan (i)
'Tentukan apakah aspan (i), yaitu, kelas rentang ada di Alexacss. Jika ada, data dalam rentang dan rentang perlu dihapus.
If instr (stralexacss, "." & Aspan (i))> = 1 lalu
'Response.write Aspan (i) & "<br>"
'Response.end
'berarti properti itu tidak ada. Itu perlu diganti.
RANKCONTENT = SCRIPTHTML (RANKCONTENT, "Span", 2, Aspan (I))
Kalau tidak
RANKCONTENT = SCRIPTHTML (RANKCONTENT, "Span", 1, Aspan (I))
Akhiri jika
Berikutnya
'Ganti tag rentang di sebelah kanan yang kurang dihapus di atas.
rankcontent = ganti (rankcontent, "</span>", "")
Akhiri jika
Jika rankContent = "$ false $" maka
rankcontent = "tidak ada data"
Akhiri jika
getealexarank = ganti (rankcontent, ",", ","))
Fungsi akhir
url = request.querystring ("url")
%>
<Form name = "Alexaform" Metode = get>
Masukkan url: <input type = "" name = "url" value = "<%= url%>" size = 40> <input type = "kirim" value = "query">
</form>
<%
Jika url <> "" lalu
response.write "Situs web Anda peringkat di Alexa sebagai:"
response.flush
peringkat = getealexargank (url)
Response.write Rank
Akhiri jika
%>
Di atas adalah tentang bagaimana ASP Alexa dapat meminta program pencuri. Artikel ini memperkenalkan program pencuri Alexa yang relatif sederhana. Teman yang menyukai fungsi ini dapat mempelajari prinsip -prinsipnya. Saya percaya bahwa Anda dapat segera menulis program ini.