スヌーピーPHPコレクションクラスの使い方を詳しく解説

WBOY
リリース: 2016-06-20 13:02:39
オリジナル
1106 人が閲覧しました

Snoopy PHP コレクション クラスの使用方法の詳細説明

Snoopy は、ブラウザの機能をシミュレートするために使用される PHP クラスで、Web コンテンツを取得したり、フォームを送信したりできます。

Snoopy を正しく動作させるには、サーバーの PHP バージョンが 4 以降であり、基本的な LAMP サービスでサポートされる PCRE (Perl 互換正規表現) をサポートしている必要があります。

1. Snoopy コレクション クラスのいくつかの機能:

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 の場合、PHP 4 以降のみが必要です。これは PHP クラスであるため、サポートを拡張する必要はありません。サーバーがcurlをサポートしていない場合に最適です。

2. スヌーピーの収集メソッド:

1. fetch($URI)

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

$this->results に保存します。

2. fetchtext($URI)

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

3. fetchform($URI)

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

4. fetchlinks($URI)

このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドは HTML タグとその他の無関係なデータを削除し、リンクのみを返すことです。 Web ページ (リンク)。デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。

5. submit($URI,$formvars)

このメソッドは、$URL で指定されたリンク アドレスに確認フォームを送信します。 $formvars はフォームパラメータを格納する配列です。

6. submittext($URI,$formvars)

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

7. submitlinks($URI)

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

デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。

3. Snoopy コレクション クラスの属性: (デフォルト値は括弧内)

$host 接続されたホスト

$port 接続されたポート

$proxy_host 使用されるプロキシ ホスト。任意の
$proxy_port 使用されるプロキシ ホスト ポート (存在する場合)
$agent ユーザー エージェント カモフラージュ (Snoopy v0.1)
$referer ソース情報 (存在する場合)
$ cookies クッキー (存在する場合)
$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 に設定します。

4. スヌーピー コレクション プロジェクトのアドレス:

http://sourceforge.net /projects/snoopy/


5. スヌーピーコレクションクラスのサンプルコード

1. スヌーピーコレクションクラスの基本的なコード例

<p>include "Snoopy.class.php";   </p><p> $snoopy = new Snoopy;    </p><p> $snoopy->proxy_host = "www.baidu.com";   </p><p> $snoopy->proxy_port = "8080";    </p><p> $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";   </p><p> $snoopy->referer = "http://www.baidu.com/";     </p><p>$snoopy->cookies["SessionID"] = 238472834723489l;    </p><p>$snoopy->cookies["favoriteColor"] = "RED";     </p><p>$snoopy->rawheaders["Pragma"] = "no-cache";    </p><p>$snoopy->maxredirs = 2;    </p><p>$snoopy->offsiteok = false;   </p><p> $snoopy->expandlinks = false;    </p><p> $snoopy->user = "joe";    </p><p>$snoopy->pass = "bloe";    </p><p>if($snoopy->fetchtext("http://www.baidu.com"))    {          </p><p>echo " <PRE>".htmlspecialchars($snoopy->results)." 
n";

}

else

echo "error fetching document: ".$snoopy->error."n";

ログイン後にコピー

2. 指定された URL コンテンツを取得します

3. フォームを送信します

$url='http://www.baidu.com';<br />include('snoopy.php');<br />$snoopy=new Snoopy;<br />$snoopy->fetch($url);//获取所有内容 <br />echo $snoopy->results;//显示结果 <br />$snoopy->fetchtext //获取文本内容(去掉html代码) <br />$snoopy->fetchlinks //获取页面所有链接 <br />$snoopy->fetchform //获取页面表单信息
ログイン後にコピー

4. スヌーピーを使って

include 'snoopy.php';<br />$snoopy=new Snoopy;<br />$formvars['username']='admin';<br />$formvars['pwd']='admin';<br />$action='http://www.baidu.com';//表单提交地址 <br />$snoopy->submit($action,$formvars);//$formvars为提交的数组 <br />echo $snoopy->results;//获取表单提交后的 返回的结果 <br />$snoopy->submittext;//提交后只返回去除html的文本 <br />$snoopy->submitlinks;//提交后只返回链接
ログイン後にコピー

$formvars['username']='admin';<br />$formvars['pwd']='admin';<br />$action='http://www.baidu.com';<br />include 'snoopy.php';<br />$snoopy=new Snoopy;<br />$snoopy->cookies['PHPSESSID']='fc206b1918bd522cc863p36890e6notef7';//伪装sessionid <br />$snoopy->agent='(compatible;MSIE 4.01;MSN 2.5;AOL 4.0;Windows 98)';//伪装浏览器 <br />$snoopy->referer='http://www.baidu.com';//伪装来源页地址 http_referer <br />$snoopy->rawheaders['Pragma']='no-cache';//cache 的http头信息 <br />$snoopy->rawheaders['X_FORWARDED_FOR']='127.0.0.1';//伪装ip <br />$snoopy->submit($action,$formvars);<br />echo $snoopy->results;
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート