ホームページ > バックエンド開発 > PHPチュートリアル > スヌーピーの強力なPHPコレクションクラスの使用例 code_PHPチュートリアル

スヌーピーの強力なPHPコレクションクラスの使用例 code_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:33:30
オリジナル
1009 人が閲覧しました

ダウンロードアドレス: http://www.jb51.net/codes/33397.html

スヌーピーのいくつかの機能:

1 Web ページのコンテンツを取得します。
2 Web ページのテキストコンテンツを取得します (HTML タグを削除します) ) fetchtext
3 Web ページ、フォーム fetchlinks fetchform へのリンクを取得します
4 プロキシ ホストをサポートします
5 基本的なユーザー名/パスワード検証をサポートします
6 user_agent、リファラー (ソース)、Cookie およびヘッダー コンテンツ (ヘッダー ファイル) の設定をサポートします
7 ブラウザーのリセットをサポートします方向、およびリダイレクトの深さを制御できます
8 Web ページ内のリンクを高品質の URL に展開できます (デフォルト)
9 データを送信し、戻り値を取得します
10 HTML フレームワークの追跡をサポートします
11 リダイレクト時の Cookie の受け渡しをサポートします
要件 PHP4 PHPクラスなので展開する必要がないため、サーバーがcurlをサポートしていない場合に最適です。

fetch($URI)
————–

これは、Web ページをクロールするためのコンテンツに使用される方法です。
$URI パラメータは、クロールされた Web ページの URL アドレスです。
取得した結果は $this->results に保存されます。
フレームをスクレイピングしている場合、スヌーピーは各フレームを追跡して配列に保存し、$this->results に保存します。

fetchtext($URI)
——————

このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除し、Web 内のテキスト コンテンツのみを返すことです。ページ。

fetchform($URI)
——————

このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除し、フォームのコンテンツ (form) のみを返すことです。ウェブページで。

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 使用するプロキシ ホスト (存在する場合)
$proxy_port 接続するプロキシ ホスト ポート使用 (ある場合)
$agent ユーザー エージェント カモフラージュ (Snoopy v0.1)
$リファラー ソース情報 (存在する場合)
$cookies クッキー (存在する場合)
$rawheaders 他のヘッダー情報 (存在する場合)
$maxredirs 最大重み リダイレクト数、0 =not allowed (5)
$offsiteok オフサイトへのリダイレクトを許可するかどうか (true)
$expandlinks 完全なアドレスへのすべてのリンクを完了するかどうか (true)
$user 認証ユーザー名 (ある場合) 許可する場合
$pass認証ユーザー名 (存在する場合)
$accept http accept type (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 = "80"; ->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.jb51.net"; ["セッションID"] = 238472834723489l ;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "キャッシュなし"; maxredirs = 2;
$snoopy->expandlinks = false;
$snoopy->pass = "ブルー"; ($snoopy->fetchtext ("http://www.jb51.net"))
{
echo "
".htmlspecialchars($snoopy->results)."
n" ;
}
else
echo "ドキュメントの取得エラー: ".$snoopy->error."n";
以下はコードの一部です:
1. 指定された URL のコンテンツを取得します
コードをコピーします コードは次のとおりです:
include( "snoopy.php");
$snoopy = 新しいスヌーピー;
$snoopy->fetch($url); // すべてのコンテンツを取得
echo $snoopy->results; //結果を表示
//以下はオプション
$snoopy->fetchtext //テキストコンテンツを取得(HTMLコードを削除)
$snoopy->fetchlinks //リンクを取得
$snoopy->fetchform //フォームを取得
?>


2 フォーム送信


コードをコピーします コードは次のとおりです:
$formvars["username"] = "admin";
$formvars["pwd"] = "admin";
$action = "http://www.jb51.net";//フォーム送信アドレス
$snoopy->submit($action,$formvars);//$formvars は送信された配列
echo $snoopy->results ; //フォームが送信された後に返される結果を取得します
//次のオプションが利用可能です
$snoopy->submittext; //送信後にHTMLを含まないテキストのみを返します
$snoopy->submitlinks;//送信後にのみリンクを返します
?>


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


コードをコピーします コードは次のとおりです:
$formvars["username"] = "admin";
$formvars["pwd"] = "admin"; "http://www.jb51.net";
include "snoopy.php";
$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; 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"; ip
$snoopy->submit($action,$formvars);
echo $snoopy->results;


セッションを偽装したり、ブラウザを偽装したり、IP を偽装したりできることがわかりました。ハハ、私たちにはたくさんのことができます。
たとえば、検証コードを持参して IP を検証して投票すると、ノンストップで投票できます。
追記: ここでの IP の偽装は、実際には http ヘッダーの偽装なので、REMOTE_ADDR を通じて取得した IP は偽装できません。
逆に、http ヘッダー (プロキシを防止できる種類) を通じて IP を取得する人は、独自の IP を作成できます。 IP。
コードを確認する方法について簡単に説明します。
まず通常のブラウザを使用してページを表示し、確認コードに対応するセッションIDを見つけます。
セッションIDと確認コードの値を同時に書き留めます。
次にsnoopyを使用します。それを偽造するために。
原則: 同じセッションIDであるため、取得される確認コードは初めて入力したものと同じです。
4 場合によっては、さらに多くのものを偽造する必要があるかもしれません。スヌーピーが完全に考えてくれました



コードをコピーします

コードは次のとおりです:
$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
$snoopy->maxframes = 5 //許可される最大フレーム数
//に注意してくださいフレームを取得するとき $snoopy- >results は配列を返します
$snoopy->error //エラーメッセージを返します
?>



http://www.bkjia.com/PHPjc/322586.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/322586.html

ダウンロード アドレス: http://www.jb51.net/codes/33397.html Snoopy のいくつかの機能: 1 Web ページのコンテンツを取得します。 fetch 2 Web ページのテキスト コンテンツを取得します (HTML タグを削除します)。 fetchtext 3 を取得します。 Web ページのリンク ..
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート