Snoopy は、Web コンテンツの取得、フォームの送信、その他の操作を行うことができるブラウザーのいくつかの単純な機能をシミュレートするために使用される php クラスです。 Snoopy を正しく動作させるには、サーバーの PHP バージョンが 4 以降であり、基本的な LAMP サービスでサポートされる PCRE (Perl 互換正規表現) をサポートしている必要があります。これは PHP クラスであり、拡張する必要がないため、サーバーがcurlをサポートしていない場合に最適です。
スヌーピーの特徴:
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 の受け渡しをサポートします
スヌーピークラスのダウンロードアドレス: http://sourceforge.net/projects/snoopy/
スヌーピークラスのメソッド:
フェッチ($URI)
これは、Web ページのコンテンツをクロールするために使用される方法です。 $URI パラメータは、クロールされた Web ページの URL アドレスです。取得した結果は $this->results に保存されます。フレームをスクレイピングしている場合、スヌーピーは各フレームを追跡して配列に保存し、$this->results に保存します。
フェッチテキスト($URI)
このメソッドは fetch() に似ています。唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページ内のテキスト コンテンツのみを返すことです。
フェッチフォーム($URI)
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページのフォーム コンテンツ (フォーム) のみを返すことです。
リンクの取得($URI)
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページ内のリンクのみを返すことです。デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
送信($URI,$formvars)
このメソッドは、$URL で指定されたリンク アドレスに確認フォームを送信します。 $formvars はフォームパラメータを格納する配列です。
テキストを送信($URI,$formvars)
このメソッドは submit() に似ていますが、唯一の違いは、このメソッドは HTML タグやその他の無関係なデータを削除し、ログイン後に Web ページ内のテキスト コンテンツのみを返すことです。
リンクを送信($URI)
このメソッドは submit() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページ内のリンクのみを返すことです。 デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
スヌーピークラスの属性: (括弧内はデフォルト値)
$host 接続されているホスト
$port 接続するポート
$proxy_host 使用するプロキシ ホスト (存在する場合)
$proxy_port 使用するプロキシ ホスト ポート (存在する場合)
$agent ユーザーエージェント変装 (スヌーピー 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 に設定します
スヌーピー使用例:
(1) 指定したURLのコンテンツを取得します
リーリー(2)フォームを送信
リーリー(3) スヌーピーを使って変装
$url='http://www.phpernote.com'; include('snoopy.php'); $snoopy=new Snoopy; $snoopy->fetch($url);//获取所有内容 echo $snoopy->results;//显示结果 $snoopy->fetchtext //获取文本内容(去掉html代码) $snoopy->fetchlinks //获取页面所有链接 $snoopy->fetchform //获取页面表单信息