Artikel ini terutama memperkenalkan Asp untuk menggunakan Microsoft.XMLHTTP untuk merayapi konten web (tanpa karakter kacau) dan memfilter konten yang diperlukan
Asp menggunakan Microsoft.XMLHTTP untuk merayapi konten web (tanpa kode kacau) dan memfilter konten yang diperlukan
Contoh kode sumber:
Copy kode kodenya sebagai berikut:
<%
Redupkan xmlUrl,http,strHTML,strBody
xmlUrl = Permintaan.QueryString("u")
REM membaca sumber XML secara asinkron
Setel http = server.CreateObject("Microsoft.XMLHTTP")
http.Buka "POST",xmlUrl,false
http.setrequestheader "Agen-Pengguna", "Mozilla/4.0"
http.setrequestheader "Koneksi", "Tetap Hidup"
http.setRequestHeader "Jenis Konten", "aplikasi/x-www-form-urlencoded"
http.Kirim()
strHTML = BytesToBstr(http.ResponseBody)
atur http = tidak ada
REM menangkap konten utama
strBody = GetBody(strHTML,"<divDiv_newsContentc""cnt"">","</div>",0,0)
strBody =Replace(strBody,"(Artikel ini pertama kali diterbitkan di ","")
strBody =Replace(strBody,"Wealth Power Network</a>, sebutkan sumber pencetakan ulang.)","")
strBody =Replace(strBody,"Artikel ini pertama kali diterbitkan pada tahun, harap sebutkan sumbernya saat mencetak ulang.)","")
strBody =Ganti(strBody,"Jaringan Kekuatan Kekayaan</a>:","")
strBody =Ganti(strBody,"Artikel ini pertama kali diterbitkan di","")
Respon.Tulis RegRemoveHref(strBody)
REM mendapatkan HTML dari respons URL yang sesuai
Fungsi BytesToBstr(tubuh)
objek redup
setel objstream = Server.CreateObject("adodb.stream")
objstream.Jenis = 1
objstream.Mode =3
objstream.Buka
objstream.Tulis isi
objstream.Posisi = 0
objstream.Jenis = 2
objstream.Charset = "UTF-8"
'Konversi pengkodean UTF-8 default asli ke pengkodean GB2312, jika tidak, gunakan secara langsung
'XMLHTTP akan mendapatkan kode kacau saat memanggil halaman web dengan karakter Cina.
BytesToBstr = objstream.ReadText
objstream.Tutup
setel objstream = tidak ada
Fungsi Akhir
REM menggunakan ekspresi reguler untuk menangkap konten yang ditandai di dalamnya
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 Maka
DapatkanBody="$Salah$"
Fungsi Keluar
Akhiri Jika
DimConStrTemp
Redupkan Mulai, Selesai
ConStrTemp=Lcase(ConStr)
MulaiStr=Lkasus(MulaiStr)
OverStr=Lkasus(OverStr)
Mulai = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)
Jika Mulai<=0 maka
DapatkanBody="$Salah$"
Fungsi Keluar
Kalau tidak
Jika Termasuk = Salah Maka
Mulai=Mulai+LenB(MulaiStr)
Akhiri Jika
Akhiri Jika
Over=InStrB(Mulai,ConStrTemp,OverStr,vbBinaryCompare)
Jika Lebih<=0 Atau Lebih<=Mulai maka
DapatkanBody="$Salah$"
Fungsi Keluar
Kalau tidak
Jika InclR=Benar Maka
Atas=Atas+LenB(AtasStr)
Akhiri Jika
Akhiri Jika
GetBody=MidB(ConStr,Mulai,Awal-Awal)
Fungsi Akhir
REM memfilter hyperlink
Fungsi RegRemoveHref(HTMLstr)
Setel ra = RegExp Baru
ra.IgnoreCase = Benar
ra.Global = Benar
ra.Pola = "<a[^>]+>(.+?)<//a>"
RegRemoveHref = Ganti(ra.replace(HTMLstr,"$1"),"href=""http://www.927953.com""","")
Fungsi AKHIR
%>
Rendernya adalah sebagai berikut: