ダウンロード アドレス: http://www.jb51.net/codes/33397.html
スヌーピーのいくつかの機能:
1 Web ページのコンテンツを取得します。
2 を取得します。 Web ページのコンテンツ テキスト コンテンツ (HTML タグの削除) fetchtext
3 Web ページのリンクを取得、フォーム fetchlinks fetchform
4 プロキシ ホストをサポート
5 基本的なユーザー名/パスワード検証をサポート
6 user_agent 設定をサポートReferer(origin)、Cookie およびヘッダー コンテンツ (ヘッダー ファイル)
7 はブラウザーのリダイレクトをサポートし、リダイレクトの深さを制御できます
8 Web ページ内のリンクを高品質の URL に拡張できます (デフォルト)
9 データを送信します戻り値を取得します
10 トラッキング HTML フレームワークをサポート
11 リダイレクト時の Cookie の受け渡しをサポート
PHP クラスなので、サーバーを展開する必要がないため、PHP 4 以降が必要です。最適な選択は
クラス メソッドです。
fetch($URI)
————–
これは、 Web ページのコンテンツを取得します。
$URI パラメータは、クロールされた Web ページの URL アドレスです。
取得した結果は $this->results に保存されます。
フレームをスクレイピングしている場合、スヌーピーは各フレームを追跡して配列に保存し、$this->results に保存します。
fetchtext($URI)
——————
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除することです。 、Web ページ内のテキスト コンテンツのみを返します。
fetchform($URI)
——————
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除することです。 、のみ Web ページ内のフォーム コンテンツ (フォーム) を返します。
fetchlinks($URI)
————-
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除することです。 Web ページ内のリンクのみが返されます。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
submit($URI,$formvars)
————————-
このメソッドは、$URL で指定されたリンク アドレスに確認フォームを送信します。 $formvars はフォームパラメータを格納する配列です。
submittext($URI,$formvars)
————————–
このメソッドは submit() に似ていますが、唯一の違いは、このメソッドが削除することです。 HTML タグやその他の無関係なデータ、ログイン後の Web ページ内のテキスト コンテンツのみが返されます。
submitlinks($URI)
————-
このメソッドは submit() と似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除することです。 Web ページ内のリンクのみが返されます。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
クラス属性: (デフォルト値は括弧内)
$host 接続先のホスト
$port 接続先のポート
$proxy_host 接続先のプロキシ ホストuse (存在する場合)
$proxy_port で使用されるプロキシ ホスト ポート (存在する場合)
$agent ユーザー エージェント カモフラージュ (Snoopy v0.1)
$referer ソース情報 (存在する場合)
$cookies Cookie (存在する場合)
$rawheaders その他のヘッダー情報 (存在する場合)
$maxredirs リダイレクトの最大数、0=許可されません (5)
$offsiteok オフサイトへのリダイレクトを許可するかどうか (true) $expandlinks 完全なアドレスへのすべてのリンクを完了するかどうか (true)
$user 認証ユーザー名 (使用可能な場合)
$pass 認証ユーザー名 (使用可能な場合)
$accept http はタイプ (image/gif、image を受け入れます) /x-xbitmap, image/jpeg, image/pjpeg, */*)
$error エラーがある場合の報告先
$response_code サーバーから返された応答コード
$headers 返されたヘッダー情報サーバーから
$maxlength 返される最長のデータ長
$read_timeout 読み取り操作のタイムアウト (PHP 4 Beta 4+ が必要)
タイムアウトなしの場合は 0 に設定します
$ timed_out 読み取り操作がタイムアウトした場合、この属性は true を返します (PHP 4 Beta 4+ が必要)
$maxframes 追跡できるフレームの最大数
$status キャプチャされた http
$temp_dir Web サーバーのステータス 書き込み可能な一時ファイル ディレクトリ (/ tmp)
$curl_path cURL バイナリ ディレクトリ。cURL バイナリがない場合は false に設定します。
以下はデモです。
コードをコピーします。、コードは次のとおりです:
include "Snoopy.class.php";
$snoopy = 新しいスヌーピー;
$snoopy->proxy_host = "http://www.jb51.net"; ;proxy_port = "80";
$snoopy->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http:// www.jb51.net";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->gt ;rawheaders["Pragma"] = "キャッシュなし";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->user = "ジョー";
$snoopy->pass = "ブルー";
if($snoopy->fetchtext("http://www.jb51.net) "))
{
echo "
".htmlspecialchars($snoopy->results)."n";
コードをコピーします コードは次のとおりです:
$url = "http://www.jb51.net";
$snoopy = 新しいスヌーピー; ->fetch($url); //すべてのコンテンツを取得します
echo $snoopy->results; //結果を表示します
//次のオプション
$snoopy->fetchtext //テキストのコンテンツを取得します(HTML コードを削除)
$snoopy->fetchlinks //リンクを取得
$snoopy->fetchform //フォームを取得
?>
2 フォーム送信
コードは次のとおりです: $formvars["username"] = "管理者";
$formvars["pwd"] = "管理者";$action = "http://www. jb51.net";//フォーム送信アドレス
$snoopy->submit($action,$formvars);//$formvars は送信された配列です
echo $snoopy->results ; //フォーム送信後に返される結果を取得します
//以下はオプションです
$snoopy->submittext; //送信後に HTML なしのテキストのみを返します
$snoopy->submitlinks;/ /送信後にのみリンクを返します
?>
フォームが送信されたので、次は IP とブラウザを偽装しましょう
3 偽装
次のようにコード化します: $formvars["username"] = "管理者";
$formvars["pwd"] = "管理者";$action = "http://www. jb51.net";
include "snoopy.php";
$snoopy = 新しいスヌーピー;
$snoopy->cookies["PHPSESSID"] = "fc106b1918bd522cc863f36890e6fff7"; //セッション ID を偽装する
$snoopy->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //偽装ブラウザ
$snoopy->referer = http://www.jb51.net / /ソースページのアドレスを偽装する http_referer
$snoopy->rawheaders["Pragma"] = "no-cache"; //キャッシュの http ヘッダー情報
$snoopy->rawheaders["X_FORWARDED_FOR"] = " 127.0.0.101"; //Disguise ip
$snoopy->submit($action,$formvars);
echo $snoopy->results;
?>gt;
セッション、ブラウザ、IP を偽装できることがわかりました。笑、たくさんのことができます。
たとえば、確認コードと IP アドレスを使用して投票すると、継続的に投票できます。
追記: ここでの IP の偽装は、実際には http ヘッダーの偽装なので、REMOTE_ADDR で取得した IP は偽装できません。
コードは次のとおりです: $snoopy->proxy_host = "http://www.jb51.net";
$snoopy->proxy_port = "8080"; //プロキシを使用します $snoopy->maxredirs = 2; //リダイレクトの数
$snoopy->expandlinks = true; //コレクション中に補完リンクが頻繁に使用されるかどうか
//たとえば、リンクは /images です。 / taoav.gif は完全なリンクに変更できますhttp://www.jb51.net/images/taoav.gif< /a>
$snoopy->maxframes = 5 //許可されるフレームの最大数
//フレームを取得すると、$snoopy->result は配列を返すことに注意してください
$snoopy-> ;error //エラーメッセージ
?>
を返します。