Pencuri yang disebutkan di sini mengacu pada penggunaan fungsi kuat yang disediakan oleh komponen XMLHTTP dalam XML di ASP untuk menangkap data (gambar, halaman web, dan file lainnya) di situs web jarak jauh ke situs lokal, dan menampilkannya di halaman setelah berbagai pemrosesan Atau jenis program yang disimpan dalam database. Anda dapat menggunakan program pencuri semacam ini untuk menyelesaikan beberapa tugas yang sebelumnya tampak mustahil, seperti mengubah halaman situs web tertentu dan mengubahnya menjadi halaman Anda sendiri, atau menyimpan beberapa data (artikel, gambar) dari situs web tertentu untuk digunakan dalam database lokal. Kelebihan Thief adalah: tidak perlu melakukan maintenance website, karena data pada program Thief berasal dari website lain, dan akan diupdate seiring dengan update website; Program pencuri hanya memiliki sedikit file, dan semua konten web berasal dari situs web lain. Kerugiannya adalah: ketidakstabilan, jika situs target salah, program juga akan salah, dan jika situs target ditingkatkan dan dipelihara, program pencuri juga perlu dimodifikasi kecepatannya, karena ini adalah panggilan jarak jauh, kecepatannya sama cepatnya dengan membaca data di server lokal. Sudah pasti lebih lambat dari itu. Bagaimana, kedengarannya luar biasa bukan? Mari kita mulai mempelajari beberapa pengetahuan pengantar tentang program pencuri sekarang!
Mari kita pelajari sesuatu yang lebih sederhana, program ramalan cuaca di website QQ
Kodenya adalah sebagai berikut:
<%
Pada Kesalahan Lanjutkan Berikutnya
Server.ScriptTimeOut=9999999
Fungsi getHTTPage(Jalur)
t = GetBody(Jalur)
getHTTPHalaman=BytesToBstr(t,GB2312)
Fungsi akhir
' Pertama, buatlah beberapa pengaturan inisialisasi pada program pencuri. Fungsi dari kode-kode di atas adalah untuk mengabaikan semua kesalahan yang tidak fatal, atur waktu tunggu program pencuri menjadi sangat lama (agar tidak terjadi kesalahan batas waktu berjalan) , dan mengonversi default asli Pengkodean UTF-8 harus diubah menjadi pengkodean GB2312. Jika tidak, menggunakan komponen XMLHTTP secara langsung untuk memanggil halaman web dengan karakter Cina akan menghasilkan kode yang kacau.
Fungsi GetBody(url)
pada kesalahan lanjutkan berikutnya
Setel Pengambilan = Buat Objek (Microsoft.XMLHTTP)
Dengan Pengambilan
.Buka Dapatkan, url, Salah, ,
.Mengirim
GetBody = .ResponseBody
Akhiri Dengan
Setel Pengambilan = Tidak Ada
Fungsi Akhir
'Kemudian panggil komponen XMLHTTP untuk membuat objek dan melakukan pengaturan awal.
Fungsi BytesToBstr(tubuh,Cset)
objekstream 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 = Cset
BytesToBstr = objstream.ReadText
objstream.Tutup
setel objstream = tidak ada
Fungsi Akhir
Fungsi String Baru(wstr,strng)
String baru=Instr(lcase(wstr),lcase(strng))
jika Newstring<=0 maka Newstring=Len(wstr)
Fungsi Akhir
'Untuk memproses data yang diambil, Anda perlu memanggil komponen adodb.stream dan melakukan pengaturan inisialisasi. %>
'Berikut ini adalah bagian tampilan halaman
<%
Redupkan wstr,str,url,mulai,akhiri,kota
'Tentukan beberapa variabel yang perlu digunakan
kota = Permintaan.QueryString(id)
'Variabel ID yang dikembalikan oleh program (yaitu, kota yang dipilih oleh pengguna) ditetapkan ke id
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'Di sini atur alamat halaman yang perlu dirayapi. Tentu saja, Anda juga dapat menentukan alamat secara langsung tanpa menggunakan variabel.
wstr=dapatkanHalaman HTTP(url)
'Dapatkan semua data dari halaman yang ditentukan
mulai=String baru(wstr, <html>)
'Di sini mengatur header data yang perlu diproses. Variabel ini harus diatur sesuai dengan situasi yang berbeda. Konten spesifik dapat ditentukan dengan melihat kode sumber halaman yang perlu dirayapi. Karena kami perlu merayapi seluruh halaman dalam program ini, kami mengaturnya untuk merayapi semua halaman. Perhatikan bahwa konten yang disetel harus unik untuk konten halaman dan tidak dapat diulang.
over=String baru(wstr,</HTML>)
'Permulaan yang sesuai adalah bagian ekor dari data yang perlu diproses. Demikian pula, konten yang ditetapkan harus unik di halaman.
body=mid(wstr,start,over-start)
'Atur rentang halaman yang ditampilkan
'Sekarang saatnya menggunakan Qiankun Shift +++. Melalui penggantian, Anda dapat mengganti karakter yang ditentukan dalam data dengan beberapa karakter.
body = ganti(body,skin1,Prakiraan Cuaca-Jaringan Kulit)
body = replace(body,http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
'Pekerjaan penggantian dalam program ini telah selesai. Jika ada kebutuhan lain, Anda dapat terus melakukan operasi penggantian serupa.
respon.tulis badan
%>
Setelah mengganti konten yang perlu dimodifikasi, konten yang dimodifikasi dapat ditampilkan pada halaman. Ini adalah akhir dari proses
Penggunaan dan hasil program: Hapus bagian deskripsi kode di atas dan simpan sebagai tianqi.asp, unggah ke ruang yang mendukung ASP dan XML, dan jalankan di browser. Anda selanjutnya dapat mempercantik antarmuka atau mengoptimalkan program berdasarkan program ini.
Di atas hanyalah beberapa aplikasi dasar dari komponen XMLHTTP. Faktanya, komponen ini juga dapat mengimplementasikan banyak fungsi, seperti menyimpan gambar jarak jauh ke server lokal, dan menggunakan komponen adodb.stream untuk menyimpan data yang diperoleh ke dalam database. Pencuri memiliki berbagai macam fungsi dan kegunaan. Tapi Anda tidak bisa menggunakannya untuk melakukan hal-hal ilegal!
Mungkin sebagian masih ingin bertanya, apakah program pencuri semacam ini hanya paten dari ASP? Tidak, PHP dapat mencapai efek yang sama melalui fungsi fopen. Karena berbagai karakteristik PHP itu sendiri, program pencuri yang ditulis memiliki keunggulan yang jelas dalam ukuran dan efisiensi eksekusi dibandingkan dengan ASP jelaskan satu per satu.