ホームページ >php教程 >php手册 >PHP収集ツール スヌーピーお試し体験

PHP収集ツール スヌーピーお試し体験

WBOY
WBOYオリジナル
2016-06-21 08:54:26910ブラウズ

スヌーピーとは何ですか? (スヌーピーをダウンロード)
スヌーピーは、Web ブラウザーの機能を模倣するために使用される php クラスで、Web ページのコンテンツの取得とフォームの送信のタスクを実行できます。
スヌーピーのいくつかの機能:
* Web ページのコンテンツをクロールするのに便利
* Web ページのテキスト コンテンツをクロールするのに便利 (HTML タグを削除)
* Web ページのリンクをクロールするのに便利
* プロキシ ホストをサポート
* 基本的なユーザー名/パスワード認証をサポート
* user_agent、リファラー (ソース)、Cookie およびヘッダー コンテンツ (ヘッダー ファイル) の設定をサポート
* ブラウザーのリダイレクトをサポートし、リダイレクトの深さを制御できます
* Web ページ内のリンクを高品質の URL に展開できます (デフォルト)
* データを送信して戻り値を取得するのに便利
* トラッキング HTML フレームワークをサポート (v0.92 で追加)
* Cookie を渡すときのリダイレクトをサポート (v0.92 で追加)
さらに詳しく知りたい場合は、自分で Google で調べてください。以下にいくつかの簡単な例を示します。
1 指定された URL のコンテンツを取得します
PHP コード

コードをコピーします コードは次のとおりです。


$url = "http://www.jb51.net";
include("snoopy.php");
$snoopy = 新しいスヌーピー
$snoopy->fetch($) url); //すべてのコンテンツを取得
echo $snoopy->results; //結果を表示
$snoopy->fetchtext //テキストコンテンツを取得(HTMLコードを削除)
$snoopy-> fetchlinks //リンクを取得
$snoopy->fetchform //フォームを取得


2 フォーム送信
PHP コード

コードをコピー コードは次のとおりです:


$formvars["username"] = "管理者";
$formvars["pwd"] = "管理者";
$action = "http://www.jb51.net";//フォーム送信アドレス
$snoopy->submit($action,$formvars);//$formvars は送信された配列です
echo $snoopy->results; //フォーム送信後に返される結果を取得します
$snoopy->submittext; //送信後は HTML なしのテキストのみを返します
$snoopy->submitlinks;//送信後にはリンクのみを返します


フォームが送信されたので、次は、IP とブラウザを偽装しましょう
3 偽装
PHP コード

コピーcodeコードは次のとおりです:


$formvars["ユーザー名"] = "管理者";
$formvars["pwd"] = "管理者";
$action = "http://www.jb51.net"; >include "snoopy.php";
$snoopy = new Snoopy;
$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //セッション ID を偽装します
$snoopy->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //偽装ブラウザ
$snoopy->referer = "http://s.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;
セッション、ブラウザ、IP を偽装できることがわかりました。笑、たくさんのことができます。
たとえば、確認コードと IP アドレスを使用して投票すると、継続的に投票できます。

追記: ここでの IP の偽装は、実際には http ヘッダーの偽装なので、REMOTE_ADDR で取得した IP は偽装できません。
逆に、http ヘッダーで IP を取得する人 (プロキシを防ぐことができる種類) は偽装できません。 IPを作成するには自分で行うことができます。
コードを確認する方法の簡単な説明:
まず、通常のブラウザを使用してページを表示し、確認コードに対応するセッション ID を見つけます。
セッション ID と確認コードの値をメモします。
次はスヌーピーを使って真似してみましょう。
原則: 同じセッションIDであるため、取得される確認コードは最初に入力したものと同じです。
4 場合によっては、さらに多くのものを偽造する必要があるかもしれません。スヌーピーが完全に考えてくれました。
PHP コード



コードをコピー

コードは次のとおりです: $snoopy->proxy_host = "www.jb51.net";

$snoopy->proxy_port = "8080"; //プロキシを使用します

$snoopy->maxredirs = 2;リダイレクト数
$snoopy->expandlinks = true; //収集中に補完リンクが頻繁に使用されるかどうか
// たとえば、リンクは /images/taoav.gif に変更できます。フルリンク http://www.jb51.net/images/taoav.gif、この場所は実際には最終出力中に ereg_replace 関数で置き換えることができます
$snoopy->maxframes = 5 //最大フレーム数allowed
//フレームを取得すると、$snoopy->results は配列を返すことに注意してください
$snoopy->error //エラー メッセージを返します


上記の基本的な使用法は理解できたので、例を使って説明します。
PHP コード




コードをコピー

コードは次のとおりです。 :


//echo var_dump($_SERVER);
$snoopy = 新しいスヌーピー-> = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-
CN; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1";//これはブラウザ情報です
情報、以前に Cookie を表示するために使用したブラウザは、そのブラウザの情報をそのまま使用します (ps:$_SERVER はブラウザ情報を表示できます)
$snoopy->referer = "http://bbs .jb51. net/index.php";
$snoopy->expandlinks = true;
$snoopy->rawheaders["COOKIE"]="__utmz=17229162.1227682761.29.7.utmccn=(参照)utmcsr =jb51. netutmcct=/html/index.htmlutmcmd=referral; cdbphpchina_smile=1D2D0D1=2592000; __utma=233700831.1562900865.1229613449.1231233266.1 __ utmz=233700831.1231233266.16.8.utmccn=(参照)utmcsr=localhost:8080utmcct=/test3.紹介; __utma=17229162.1877703507.1227113568.1231228465.1231233160.58; xscdb_cookietime=2592000; __utmc=17229162; 2; cdbphpchina_sid=EX5w1V; __utmc=233700831; th=8106rAyhKpQL49eMs%2B2idSk4bExJwbQr%2B6KLPg3Dt WpTMUI4ttqNNVpukUj6ElM ; cdbphpchina_onlineusernum=3721";
$snoopy->fetch("http://bbs.jb51.net");
$n=ereg_re place("href="","href ="http: //bbs.jb51.net/",$snoopy->results );
echo ereg_replace("src="","src="http://bbs.jb51.net/", $n);
?>


これは PHPCHINA フォーラムへのログインをシミュレートするプロセスです。まず、ブラウザの情報を確認する必要があります。

: echo var_dump($_SERVER); このコードでブラウザの情報を確認できます。
$_SERVER ['HTTP_USER_AGENT'] の後の内容をコピーし、$snoopy->agent の領域に貼り付けます。その後、自分の
COOKIE を確認する必要があります。フォーラムで自分のアカウントを作成し、ブラウザのアドレス バーに
javascript:document.write(document.cookie) と入力して Enter キーを押すと、Cookie 情報が表示され、$snoopy-> の後に
をコピーして貼り付けます。 rawheaders["COOKIE"]=。 (私の Cookie 情報はセキュリティ上の理由から削除されています)

次に、次の点に注意してください:

# $n=ereg_replace("href="","href="http:// bbs. jb51.net/",$snoopy->results );

# echo ereg_replace("src="","src="http://bbs.jb51.net/",$n );

これら 2 行のコードは、収集されたコンテンツのすべての HTML ソース アドレスが相対リンクであるため、フォーラムの画像と CSS スタイルを引用できるように絶対リンクに置き換える必要があります。




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。