ここでいう泥棒とは、ASP の XML の XMLHTTP コンポーネントが提供する強力な機能を利用して、リモート Web サイト上のデータ (写真、Web ページ、その他のファイル) をローカルにキャプチャし、さまざまな処理を行った後にページ上に表示することを指します。データベースに保存されるプログラムの一種。この種の泥棒プログラムを使用すると、特定の Web サイトのページを変更して自分のページに変えたり、特定の Web サイトの一部のデータ (記事、写真) を保存したりするなど、これまではまったく不可能と思われていたタスクを実行できます。ローカルデータベースで使用されます。 Thief の利点は次のとおりです。Thief プログラムのデータは他の Web サイトから取得され、Web サイトが更新されると更新されるため、Web サイトを保守する必要がなく、一般にサーバー リソースを大幅に節約できます。 Thief プログラムにはいくつかのファイルしかなく、すべての Web コンテンツは他の Web サイトからのものです。欠点は次のとおりです。不安定で、ターゲット Web サイトが正常に動作しない場合、プログラムも正常に動作しません。また、ターゲット Web サイトがアップグレードおよび保守されている場合は、リモート呼び出しであるため、それに応じてシーフ プログラムの速度も変更する必要があります。速度はローカルサーバー上のデータを読み取るのと同じくらい速いですが、それよりは明らかに遅いです。どうですか、すごいと思いませんか?今すぐ、thief プログラムの入門知識を学び始めましょう。
もっと簡単なこと、QQ ウェブサイトの天気予報プログラムを勉強しましょう
コードは次のとおりです。
<%
エラー時は次へ再開
Server.ScriptTimeOut=9999999
関数 getHTTPage(パス)
t = GetBody(パス)
getHTTPPage=BytesToBstr(t,GB2312)
終了機能
' まず、シーフ プログラムの初期化設定を行います。上記のコードの機能は、致命的ではないエラーをすべて無視し、シーフ プログラムの実行タイムアウトを非常に長い時間に設定することです (実行タイムアウト エラーが発生しないようにします)。を使用して、元のデフォルトを変換します。UTF-8 エンコードを GB2312 エンコードに変換する必要があります。そうしないと、XMLHTTP コンポーネントを直接使用して中国語の文字を含む Web ページを呼び出すと、コードが文字化けします。
関数 GetBody(url)
エラー時は次から再開
取得 = CreateObject(Microsoft.XMLHTTP) を設定します
検索あり
.Open Get、URL、False、、
。送信
GetBody = .ResponseBody
で終わる
取得 = なしを設定します
終了機能
'次に、XMLHTTP コンポーネントを呼び出してオブジェクトを作成し、初期設定を実行します。
関数 BytesToBstr(body,Cset)
薄暗いオブジェクトストリーム
set objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.本体の書き込み
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
objstream = 何も設定しない
終了機能
関数 Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
if Newstring<=0 then Newstring=Len(wstr)
終了機能
キャプチャしたデータを処理するには、adodb.stream コンポーネントを呼び出し、初期化設定を実行する必要があります。 %>
'以下はページ表示部分です
<%
薄暗い wstr,str,url,start,over,city
'使用する必要がある変数を定義します
city = Request.QueryString(id)
'プログラムによって返された ID 変数 (つまり、ユーザーが選択した都市) が id に割り当てられます
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'ここではクロールする必要があるページのアドレスを設定します。もちろん、変数を使用せずに直接アドレスを指定することもできます。
wstr=getHTTPage(url)
'指定したページの全データを取得
start=Newstring(wstr, <html>)
'ここでは、処理する必要があるデータのヘッダーを設定します。この変数は、クロールする必要があるページのソース コードを表示することで、さまざまな状況に応じて設定する必要があります。このプログラムではページ全体をクロールする必要があるため、すべてのページをクロールするように設定します。設定する内容はページ コンテンツに固有である必要があり、重複することはできないことに注意してください。
over=Newstring(wstr, </HTML>)
'開始に対応するのは、処理が必要なデータの末尾です。同様に、設定された内容はページ内で一意である必要があります。
body=mid(wstr,start,over-start)
'表示するページの範囲を設定
'今度は、Qiankun Shift +++ を使用します。置換により、データ内の指定された文字をいくつかの文字に置き換えることができます。
body = replace(body,skin1,天気予報 - スキン ネットワーク)
body = replace(body,http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
'このプログラムでの置換作業は完了しています。他に必要な場合は、引き続き同様の置換操作を実行できます。
応答.本文を書く
%>
変更が必要な内容を置き換えると、変更した内容がページに表示されます。これでプロセスは終了です
プログラムの使用法と結果: 上記のコードの説明部分を削除して tianqi.asp として保存し、ASP と XML をサポートするスペースにアップロードして、ブラウザーで実行します。このプログラムに基づいて、さらにインターフェースの美化やプログラムの最適化を行うことができます。
上記は XMLHTTP コンポーネントの基本的なアプリケーションの一部にすぎません。実際には、リモート画像をローカル サーバーに保存したり、adodb.stream コンポーネントを使用して取得したデータをデータベースに保存したりするなど、多くの機能を実装することもできます。 Thief には幅広い機能と用途があります。ただし、違法行為に使用することはできません。
おそらく、この種の窃盗プログラムは単なる ASP の専売特許なのでしょうか、とまだ聞きたい人もいるかもしれません。いいえ、PHP は fopen 関数を通じて同じ効果を実現できます。PHP 自体のさまざまな特性により、作成された泥棒プログラムは ASP と比較してサイズと実行効率の点で明らかな利点があります。ただし、スペースの制限があるため、ここでは説明しません。それらを一つずつ説明してください。